Rumah  >  Artikel  >  pembangunan bahagian belakang  >  用Python实现IP在整型与字符串间的转换的方法

用Python实现IP在整型与字符串间的转换的方法

Y2J
Y2Jasal
2017-05-04 11:57:281679semak imbas

这篇文章主要给大家介绍了利用Python将IP在整型和字符串之间轻松转换的相关资料,文中还跟大家分享了Python下利用正则表达式来匹配校验一个字符串是否为ip地址的方法,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

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

总结

Atas ialah kandungan terperinci 用Python实现IP在整型与字符串间的转换的方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn