Python如何实现整数与IP地址转换

将字符串型的IP地址(XXX.XXX.XXX.XXX)存入数据库中即浪费空间又影响性能,所以数据库中有时会将IP地址转换为整型存储,也就是IP地址的网络字节序格式。在测试时从数据库查到整型的网络字节序,需要再转回字符串型IP地址,可以通过Python代码轻松解决这个问题。如下:

>>> import socket     # 导入相关模块包
>>> import struct     # 导入相关模块包
>>> int(socket.inet_aton('192.168.200.106').encode('hex'), 16)    # 将IP从字符串转为整型
3232286826L
>>> int(socket.inet_aton('192.168.20.135').encode('hex'), 16)
3232240775L
>>> socket.inet_ntoa(struct.pack("!I",2130706433))   # 将IP从整型转为字符串
'127.0.0.1'
>>> socket.inet_ntoa(struct.pack("!I",3232286735))
'192.168.200.15'
>>> socket.inet_ntoa(struct.pack("!I",2893810498))
'172.124.11.66'
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容