Fork me on GitHub

Python脚本生成所有内网合法IP

本来不准备写这篇blog的,因为本文内容其实是判断字符串是否是内网地址(Python实现)的副产品。但是考虑到把本文代码直接植入到刷题的题解中看起来颇为诡异,所以还是单独发出来。

脚本作用

生成所有合法的A类、B类、C类IP地址。

私有IP地址范围划分

分类IP段
A类10.0.0.0 – 10.255.255.255
B类172.16.0.0 – 172.31.255.255
C类192.168.0.0 – 192.168.255.255
本机回送地址127.0.0.1

lan_ip

脚本代码

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
def generate_class_a_ip_list():
# generate class A IP # 16777216

internal_list_a = []

for i in range(256):
for j in range(256):
for k in range(256):
internal_list_a.append("10.{}.{}.{}".format(i,j,k))
return internal_list_a

def generate_class_b_ip_list():
# generate class B IP # 1048576
internal_list_b = []

for i in range(16,32):
for j in range(256):
for k in range(256):
internal_list_b.append("172.{}.{}.{}".format(i,j,k))
return internal_list_b


def generate_class_c_ip_list():
# generate class C IP # 65536
internal_list_c = []
for i in range(256):
for j in range(256):
internal_list_c.append("192.168.{}.{}".format(i,j))
return internal_list_c


def generate_all_lan_ip_list():
# generate all lan ip # 17891329
internal_list_local = ['127.0.0.1']

all_lan_ip_list = internal_list_local + generate_class_a_ip_list() + generate_class_b_ip_list() + generate_class_c_ip_list()

return all_lan_ip_list


def write_all_lan_ip_in_txt(all_lan_ip_list):
print('length of ip list: {}'.format(len(all_lan_ip_list)))
with open('./lan_ip.txt', 'wb+') as f:
for ip in all_lan_ip_list:
f.write((ip+'\n').encode("utf-8"))

if __name__ == '__main__':
start_time = time.time()
all_lan_ip_list = generate_all_lan_ip_list()
write_all_lan_ip_in_txt(all_lan_ip_list)
delta_time = time.time()-start_time
print("=== run time : {} ===".format(delta_time))

备注

因为IP是直接通过循环加入列表,所以A、B类型私有地址生成用时较长(本机测试完整遍历和完整写入大约需30-40s左右,至于代码运行慢的原因,看代码就能明白,我看下后续能否再优化下)。
不建议直接再控制台打印输入,建议将IP地址都写入到数据库或文件(.csv或.txt)中(如下图)。
目前直接想到的应用场景就是生成测试数据了,也许以后还会有更多场景也说不定。^ _ ^

-------------  Fin    Thanks for reading!  -------------

本文标题:Python脚本生成所有内网合法IP

文章作者:TesterCC

发布时间:2019年09月30日 - 21:09

最后更新:2019年09月30日 - 22:09

原始链接:http://blog.fullstackpentest.com/python-script-to-generate-valid-ip-address.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。