我们经常访问网站是通过网址导航,网址导航链接的是域名,域名通过DNS转换成IP地址进行访问。我们见到IP地址通常是这样表示的a.b.c.d的形式。例如,山西农业大学首页的IP地址是211.82.8.2。其实IP地址还可以用一个长整形数来表示,它与IP地址的对应关系是:
ip=((a*256+b)*256+c)*256+d
所以,山西农业大学的首页可以通过heep://211.82.8.2访问,也可以通过http://3545368578来访问。因为python的整形可以表示很大,所以不用L作为后缀。
下来我们通过浏览器访问:在浏览器的地址栏中输入http://3545368578,浏览器会自动转换为211.82.8.2并访问该网站。
关键部分到了,我们将普通的点分IP地址转换成整形表示。
点击(此处)折叠或打开
print "IP address convert to long inteer"
ip = raw_input("please input your ip address like a.b.c.d:") #输入想要转换的IP地址
num = ip.split(".") #把IP地址进行切分
longa = int(num[0])
longb = int(num[1])
longc = int(num[2])
longd = int(num[3])
LIP = int(((longa*256+longb)*256+longc)*256+longd)
print 'The long integer ip address is : http://%d' % LIP #通过复制该地址可以直接访问相应的网站
我们输入山西农业大学的IP测试:
点击(此处)折叠或打开
IP address convert to long inteer
please input your ip address like a.b.c.d:211.82.8.2
The long integer ip address is : http://3545368578
好了我们访问一下:
地址栏中输入我们的长整形数
回车访问,地址变了:
用lambda的方式,IP地址转换到整数
该项目仅供大家娱乐以下,感兴趣可以试一试……
ip=((a*256+b)*256+c)*256+d
所以,山西农业大学的首页可以通过heep://211.82.8.2访问,也可以通过http://3545368578来访问。因为python的整形可以表示很大,所以不用L作为后缀。
下来我们通过浏览器访问:在浏览器的地址栏中输入http://3545368578,浏览器会自动转换为211.82.8.2并访问该网站。
关键部分到了,我们将普通的点分IP地址转换成整形表示。
点击(此处)折叠或打开
print "IP address convert to long inteer"
ip = raw_input("please input your ip address like a.b.c.d:") #输入想要转换的IP地址
num = ip.split(".") #把IP地址进行切分
longa = int(num[0])
longb = int(num[1])
longc = int(num[2])
longd = int(num[3])
LIP = int(((longa*256+longb)*256+longc)*256+longd)
print 'The long integer ip address is : http://%d' % LIP #通过复制该地址可以直接访问相应的网站
我们输入山西农业大学的IP测试:
点击(此处)折叠或打开
IP address convert to long inteer
please input your ip address like a.b.c.d:211.82.8.2
The long integer ip address is : http://3545368578
好了我们访问一下:
地址栏中输入我们的长整形数
回车访问,地址变了:
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 int
>>> 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 地址 一行代码搞定
用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
该项目仅供大家娱乐以下,感兴趣可以试一试……