python整数与IP地址转换
2017-02-13 10:03
218 查看
python整数与IP地址转换 [转]
我们有时会将一个整数与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)])
>>> 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
相关文章推荐
- python整数与IP地址转换 [转]
- python整数与IP地址转换 [转]
- python模块--ip地址转换为整数
- python整数与IP地址转换 [转]
- python模块--ip地址转换为整数
- 一段python 代码(涉及编解码,整数的除法运算,文件操作)
- [笔记]Python的整数对象:PyIntObject
- python3之数字(在实际应用中的数字--整数精度)
- python:ip地址转换
- python:ip地址转整数程序
- 如何在python的print中格式化打印longlong型(即64位)整数
- Python中整数对象的实现
- 有趣的python:关于python中的整数类型对象
- python高效计算2的次方(位左移)和整数与2的次方的乘积
- Python一行读入多个整数/字符串
- 算法:求从1到n这n个整数的十进制表示中1出现的次数-- python 实现
- 用python写高精度的数据乘法,要求输入的书不大于256的正整数,计算其结果
- python 中仅用于整数的函数
- 将IP地址转换为一个整数
- Python中的整数对象(Python 源码剖析第二章)