前言
大家应该都有所体会,对于字符串型的IP存入数据库中,实在是个即浪费空间又浪费性能的家伙,所以可爱的人们想出来将IP转换为整型存储。MySQL中存在INET_ATON()
、INET_NTOA()
函数进行IP整型和字符串之间的转换,那么Python中存在什么方法可以实现MySQL中INET_ATON()
、INET_NTOA()
的功能呢?方法肯定是有的~
方法如下
# 导入相关模块包
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地址
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
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对软件开发网的支持。
您可能感兴趣的文章:Python简单获取网卡名称及其IP地址的方法【基于psutil模块】详解Python判定IP地址合法性的三种方法Python查询IP地址归属完整代码尝试使用Python多线程抓取代理服务器IP地址的示例Python实现根据IP地址和子网掩码算出网段的方法python获取外网ip地址的方法总结python实现扫描ip地址的小程序