用Python将IP地址在整型和字符串之间轻松转换

yipeiwu_com6年前Python基础

前言

大家应该都有所体会,对于字符串型的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设计】的支持。

相关文章

docker django无法访问redis容器的解决方法

docker django无法访问redis容器的解决方法

docker-compose.yal文件中: redis: image: redis container_name: xdemo.redis ports: - 6...

Python写的服务监控程序实例

前言: Redhat下安装Python2.7 rhel6.4自带的是2.6, 发现有的机器是python2.4。 到python网站下载源代码,解压到Redhat上,然后运行下面的命令:...

Numpy数据类型转换astype,dtype的方法

1、查看数据类型 In [11]: arr = np.array([1,2,3,4,5]) In [12]: arr Out[12]: array([1, 2, 3, 4, 5])...

Python根据区号生成手机号码的方法

本文实例讲述了Python根据区号生成手机号码的方法。分享给大家供大家参考。具体实现方法如下: # _*_ coding:utf-8 _*_ #xiaohei.python.seo....

python Manager 之dict KeyError问题的解决

程序需要多进程见共享内存,使用了Manager的dict。 最初代码如下: from multiprocessing import Process, Manager d = Mana...