python int与ip互转

来源:互联网 发布:网络教育学生能当兵吗 编辑:程序博客网 时间:2024/06/03 16:33
python怎样将一个整数与IP地址相互转换?
>>> import socket,struct
>>> int_ip = 123456789
>>> socket.inet_ntoa(struct.pack(‘I’,socket.htonl(int_ip)))#整数转换为ip地址
’7.91.205.21′
>>> str(socket.ntohl(struct.unpack(“I”,socket.inet_aton(“255.255.255.255″))[0]))#ip地址转换为整数
’4294967295′
实际上也就是进制数的转换
用lambda的方式,int2ip一行代码搞定
>>> int2ip = lambda x: '.'.join([str(x/(256**i)%256) for i in range(3,-1,-1)])
>>> int2ip(123456789)
’7.91.205.21′
用lambda的方式,ip2int
>>> ip2int = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split('.')[::-1])])
>>> ip2int('7.91.205.21')
123456789
0 0
原创粉丝点击