python模块--ip地址转换为整数
2013-11-13 14:38
459 查看
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
转自:http://www.cnblogs.com/vovlie/archive/2012/10/17/2727029.html
相关文章推荐
- python模块--ip地址转换为整数
- python整数与IP地址转换 [转]
- python整数与IP地址转换 [转]
- python整数与IP地址转换 [转]
- python模块,random模块,取整数,取小数,二选一,打乱次序,随机数案例
- python整数与IP地址转换
- Python random模块(随机整数部分内容)
- python os.path模块
- Python Random模块生成伪随机数字
- python模块之ConfigParser: 用python解析配置文件
- python ConfigParser模块详解
- python模块是否安装
- Python入门(六)——self,类,方法,__init__,类对象,类变量,文件操作,判断回文,pickle模块用法
- ubuntu下Python导入自定义模块的方法
- Python Gzip压缩与解压模块
- Python自动化运维笔记(三):DNS处理模块dnspython
- struct模块小练习,判断位图Python3
- python推荐的模块结构
- Python模块学习 ---- zlib 数据压缩流(内存数据)
- Linux Python找不到Tkinter模块