python整数与IP地址转换 [转]
2014-04-09 20:02
204 查看
我们有时会将一个整数与IP地址进行互换,用python代码实现很简单
将一个整数如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 int
123456789L
其实这是进制数的转换,我们可以自己写代码
# 整数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)]) #除以256取余,逆序输出 相当于转成256进制
>>> ch2(123456789)
'7.91.205.21'
用lambda的方式,IP地址转换到整数
>>> ch3 = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split('.')[::-1])]) #相当于由256进制转成10进制
>>> ch3('7.91.205.21')
123456789
将一个整数如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 int
123456789L
其实这是进制数的转换,我们可以自己写代码
# 整数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)]) #除以256取余,逆序输出 相当于转成256进制
>>> ch2(123456789)
'7.91.205.21'
用lambda的方式,IP地址转换到整数
>>> ch3 = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split('.')[::-1])]) #相当于由256进制转成10进制
>>> ch3('7.91.205.21')
123456789
相关文章推荐
- python整数与IP地址转换
- python整数与IP地址转换 [转]
- python整数与IP地址转换 [转]
- python模块--ip地址转换为整数
- python模块--ip地址转换为整数
- python解leetcode——13.Roman to Integer (罗马数字转为整数)
- Python源码剖析(02 Python中的整数对象)
- python 整数转为二进制bin()
- python3 map函数和reduce函数的实例:1)字符串转换整数; 2)字母大小写转换
- python 输入三个整数,按照从小到大的顺序打印
- python 字符串和整数的转换方法
- 铁乐学Python_day06-整数和字符串小数据池
- 剑指offer:整数中1出现的次数(python)
- 数值的整数次方(C++ 和 Python 实现)
- python 中仅用于整数的函数
- lintcode python代码 463 整数排序
- 利用python中的hex()函数把整数转换成一个十六进制的字符串
- Python:利用内建函数将字符串转化为整数
- python高效计算2的次方(位左移)和整数与2的次方的乘积
- 用Python写一段整数和IPV4互换的程序