在python2.7中运行以下代码时,所有这些检查都为true。在
from netaddr import *
testip = '192.168.2.5'
testnetwork = '192.168.3.0/23'
if testip in IPNetwork(testnetwork):
print "Logic Fail"
if IPAddress(testip) in IPNetwork(testnetwork):
print "Logic Fail"
if testip in IPSet([testnetwork]):
print "Logic Fail"
if IPAddress(testip) in IPSet([testnetwork]):
print "Logic Fail"
输出为:
^{pr2}$
对于
192.168.3.0/23
网络,范围是:192.168.2.1 - 192.168.3.254
所以你的IP地址
192.168.2.5
就属于这个范围。不确定您要实现什么,但是给定了指定的python代码可以按预期工作这不是一个奇怪的结果,您指定的CIDR过去被称为“supernetting”,因此:
有效覆盖
^{pr2}$通过
给你大约512个可能的地址 /23与这个网络掩码相同
也就是说3号车被撞回2号车
为了帮助可视化,您可以使用在线子网计算器,如http://mxtoolbox.com/subnetcalculator.aspx
相关问题 更多 >
编程相关推荐