网上很多数字转ipv4的程序,没有数字转ipv6的。
由于单位测试要用,我先是在网上找了半个小时,没找到。一怒之下,被逼无奈,自己写了一个。贡献出来,正好大家也使用一下吧。
功能:把一个数字转换成ipv6的地址。多大的都行。
#!/usr/bin/python
#-*-coding:utf-8-*-
import string
base = [str(x) for x in range(10)] + [ chr(x) for x in range(ord('A'),ord('A')+6)]
def dec2hex(string_num):
num = int(string_num)
mid = []
while True:
if num == 0: break
num,rem = divmod(num, 16)
mid.append(base[rem])
return ''.join([str(x) for x in mid[::-1]])
def int2ip(ipInt):
ipStr = ''
leftValue = ipInt
for i in [7, 6, 5, 4, 3, 2, 1, 0]:
ipTokenInt = dec2hex(leftValue / 65536**i)
if(ipTokenInt==''):
ipTokenInt = 0
ipStr = ipStr + str(ipTokenInt)
if i!=0:
ipStr = ipStr + ':'
leftValue %= 65536**i
return ipStr
if __name__ == "__main__":
try:
file_object = open('ipv6.wlist', 'w')
n = 400000000000000000000000000000000000
print 'start ip'+int2ip(n)
for i in range(999):
file_object.write(int2ip(n)+'\n')
n=n+1
n=n+1
file_object.write(int2ip(n))
finally:
file_object.close()
起始ip的数字 就是那个 40000000000000 就是说 从这个数字开始计算ipv6的。以后每次ipv6 都是数字加1. 写文件到 ipv6.wlist中。
行了,python2的程序。
可以运行,本次亲测,亲自使用的。