通过子网掩码查找ip范围

时间:2017-09-20 13:23:41

标签: python networking subnet

我们说我的本地IP是10.212.97.23而我的子网掩码是255.255.254.0

据此,我与10.212.96.*位于同一子网,CIDR为10.212.96.0/23

所以我的问题是:是否有任何python库采用本地IP和子网掩码并计算CIDR值?我检查了netaddr库但无法找到此功能

2 个答案:

答案 0 :(得分:0)

CIDR中的基本计数可以使用以下函数手动计算,而不使用任何库:

>>> netmask = "255.255.254.0"
>>> sum([bin(int(x)).count("1") for x in netmask.split(".")])
23

让我知道它是否有用。

答案 1 :(得分:0)

如果您想使用模块,ipaddress模块​​可以提供帮助:

❯ python3
>>> import ipaddress
>>> ipaddress.IPv4Network("10.212.97.23/255.255.254.0", strict=False).prefixlen
23

文档here