#/use/bin/env python
#-*-coding:utf-8-*-
"this is a custom module"
def IpChangeToNumber(ip):
'''把一个ip地址转换成数字,
格式如下:www.xxx.yyy.zzz
'''
ip_str = str(ip)
lst = ip_str.split('.')
if len(lst) != 4:
return None
bin_ip = ""
for elem in lst:
num = int(elem)
if num > 255:
num = 255
elif num < 0:
num = 0
sub_ip = bin(num)[2:]
sub_ip = sub_ip.zfill(8)
bin_ip += sub_ip
return long(bin_ip, 2)
def NumberChangeToIp(number):
'''把一个数字转换成ip地址,
转换成格式如下:www.xxx.yyy.zzz
'''
number = int(number)
bin_str = bin(number)[2:].zfill(32)
ip_items = []
ip_items.append(int(bin_str[0:8], 2))
ip_items.append(int(bin_str[8:16],2))
ip_items.append(int(bin_str[16:24],2))
ip_items.append(int(bin_str[24:],2))
ip = '{}.{}.{}.{}'.format(ip_items[0], ip_items[1], ip_items[2], ip_items[3])
return ip
if __name__ == '__main__':
print IpChangeToNumber("123.125.0.236")
print IpChangeToNumber("123.125.0")
print NumberChangeToIp(2071789804)
IP地址转数字(IP <<===>>数字)
最新推荐文章于 2021-12-31 17:07:14 发布