-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerate_ipv6.py
87 lines (63 loc) · 1.76 KB
/
generate_ipv6.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import random
VERSION1_COUNT = 100000
VERSION2_COUNT = 100000
def generate_ipv6():
version1 = ""
version2 = ""
for i in range(8):
y = random.randint(0,65535)
hexed_int = hex(y)[2:]
if i != 7:
version1 = version1 + hexed_int + ":"
else:
version1 = version1 + hexed_int
if len(hexed_int) < 4:
while len(hexed_int) < 4:
hexed_int = "0" + hexed_int
if i != 7:
version2 = version2 + hexed_int + ":"
else:
version2 = version2 + hexed_int
assert len(version2) == 4*8 + 7
print(version1, version2)
if version1 != version2:
return [version1, version2]
else:
return [version1]
def generate_ipv4():
ipv4 = ""
for i in range(4):
x = str(random.randint(0,255))
if i != 3:
ipv4 = ipv4 + x + "."
else:
ipv4 = ipv4 + x
return ipv4
def generate_ipv6_mixed():
version1 = ""
ipv4 = generate_ipv4()
for i in range(6):
y = random.randint(0,65535)
hexed_int = hex(y)[2:]
if i != 5:
version1 = version1 + hexed_int + ":"
else:
version1 = version1 + hexed_int
version1 = version1 + ":" + ipv4
return version1
f = open("ipv6_demo.txt", "w")
for i in range(VERSION1_COUNT):
ipv6 = generate_ipv6_mixed()
f.write(ipv6)
f.write("\n")
for i in range(VERSION2_COUNT):
ipv6list = generate_ipv6()
if len(ipv6list) ==2:
f.write(ipv6list[0])
f.write("\n")
f.write(ipv6list[1])
f.write("\n")
else:
f.write(ipv6list[0])
f.write("\n")
f.close()