Python 手动查找IP是否存在于CIDR IP范围内

Python 手动查找IP是否存在于CIDR IP范围内,python,ip,cidr,Python,Ip,Cidr,我有一个带有CIDR符号的IP列表,例如: 10.10.1.32/27 我想做的是检查IP是否属于该范围。所以我想看看10.10.1.44是否落在那里,它会落在那里,或者10.10.1.90没有落在那里 我知道目前有很多python库都在这样做,比如ipcalc和NetAddress 但我不想用手做这件事。我知道我需要将IP转换成二进制,并在此基础上进行一些计算。我觉得我已经很接近了,但我对Python中的逐位操作不是100% 我在这里找到了一个可以为C实现这一点的工具,但我无法找到在Pytho

我有一个带有CIDR符号的IP列表,例如:

10.10.1.32/27

我想做的是检查IP是否属于该范围。所以我想看看10.10.1.44是否落在那里,它会落在那里,或者10.10.1.90没有落在那里

我知道目前有很多python库都在这样做,比如ipcalc和NetAddress

但我不想用手做这件事。我知道我需要将IP转换成二进制,并在此基础上进行一些计算。我觉得我已经很接近了,但我对Python中的逐位操作不是100%

我在这里找到了一个可以为C实现这一点的工具,但我无法找到在Python中不使用库就可以实现这一点的方法


谢谢

我认为你可以很容易地改编剧本。它将为您提供网络和广播地址,例如N1.N2.N3.N4和B1.B2.B3.B4。然后,您只需通过执行以下操作来检查您正在测试的地址A1.A2.A3.A4是否在这两个地址之间

if N1 <= A1 <= B1 and .... and N4 <= A4 <= B4:
    return True
return False

如果N1我认为NetAddress软件包满足您的需要。实际上,我正在用这个库进行所有IP计算