首页 > 代码库 > python整数与IP地址转换 [转]
python整数与IP地址转换 [转]
我们有时会将一个整数与IP地址进行互换,用python代码实现很简单
将一个整数如2000000,变为一个IP地址的方式
将一个整数如2000000,变为一个IP地址的方式
>>> import socket>>> import struct>>> int_ip = 123456789>>> ip = socket.inet_ntoa(struct.pack(‘I‘,socket.htonl(int_ip))) #int to ip address‘7.91.205.21‘>>> socket.ntohl(struct.unpack("I",socket.inet_aton(str(ip)))[0]) #ip address to int123456789L
其实这是进制数的转换,我们可以自己写代码
# 整数to IP地址格式
>>> def ch1(num): s = [] for i in range(4): s.append(str(num %256)) num /= 256 return ‘.‘.join(s[::-1])>>> ch1(123456789)‘7.91.205.21‘
用lambda的方式,整数toIP 地址 一行代码搞定
>>> ch2 = lambda x: ‘.‘.join([str(x/(256**i)%256) for i in range(3,-1,-1)])>>> ch2(123456789)‘7.91.205.21‘
用lambda的方式,IP地址转换到整数
>>> ch3 = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split(‘.‘)[::-1])])>>> ch3(‘7.91.205.21‘)123456789
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。