前言
大家应该都有所体会,对于字符串型的IP存入数据库中,实在是个即浪费空间又浪费性能的家伙,所以可爱的人们想出来将IP转换为整型存储。MySQL中存在INET_ATON()
、INET_NTOA()
函数进行IP整型和字符串之间的转换,那么Python中存在什么方法可以实现MySQL中INET_ATON()
、INET_NTOA()
的功能呢?方法肯定是有的~
方法如下
1
2
3
4
5
6
7
8
9
|
# 导入相关模块包
import socket
import struct
# 将IP从字符串转为整型
>>> int (socket.inet_aton( '127.0.0.1' ).encode( 'hex' ), 16 )
2130706433
# 将IP从整型转为字符串
>>> socket.inet_ntoa(struct.pack( "!I" , 2130706433 ))
'127.0.0.1'
|
拓展
Python下利用正则表达式来匹配校验一个字符串是否为ip地址
1
2
3
4
5
6
|
def checkip(ip):
p = re. compile ( '^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$' )
if p.match(ip):
return True
else :
return False
|
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。