使用Python获取网段的IP个数以及地址清单需要用到IPy的库,而相应的方法主要就是IP。
写小脚本如下:
1
2
3
4
5
6
7
8
9
|
from IPy import IP
ip = IP( '192.168.0.0/16' )
print (ip. len ())
for x in ip:
print (x)
|
运行结果:
GreydeMac-mini:01_系统基础信息模块详解 greyzhang$ python ip.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
|
65536
192.168 . 0.0
192.168 . 0.1
192.168 . 0.2
192.168 . 0.3
192.168 . 0.4
192.168 . 0.5
192.168 . 0.6
192.168 . 0.7
192.168 . 0.8
192.168 . 0.9
192.168 . 0.10
192.168 . 0.11
192.168 . 0.12
192.168 . 0.13
192.168 . 0.14
192.168 . 0.15
192.168 . 0.16
192.168 . 0.17
……………………
192.168 . 255.241
192.168 . 255.242
192.168 . 255.243
192.168 . 255.244
192.168 . 255.245
192.168 . 255.246
192.168 . 255.247
192.168 . 255.248
192.168 . 255.249
192.168 . 255.250
192.168 . 255.251
192.168 . 255.252
192.168 . 255.253
192.168 . 255.254
192.168 . 255.255
|
从上面的结果中可以看出,这个王端*有65535个IP,同时脚本输出了所有的IP地址清单。至于这个IP地址的含义可以再做一下简单的解释。代码中的192.168.0.0/16其实是一个私有地址网段。早起的网络设计中,总是尝试给所有的计算机分配一个固定的地址,但是随着局域网的发展这个多少有点不必要了。私有的局域内部网络很多时候并不需要保护共有IP。未连接到互联网上的机器并不需要使用唯一的IP地址,因为它并不在因特网上路由,也不需要与IP地址注册表协调。在RFC 1981中保留了IPV4的三个费重叠地址,具体的地址说明如下:
而代码中,用到的便是上面表格中的第三个。针对前面两个的网段IP数目进行获取如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
In [ 67 ]: ip1 = IP( '172.16.0.0/12' )
In [ 68 ]: ip1. len ()
Out[ 68 ]: 1048576
In [ 69 ]: ip2 = IP( '10.0.0.0/8' )
In [ 70 ]: ip2. len ()
Out[ 70 ]: 16777216
|
以上这篇使用Python获取网段IP个数以及地址清单的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/grey_csdn/article/details/70195393