如何在Python中对IP地址和子网掩码执行AND操作

0 投票
2 回答
2036 浏览
提问于 2025-04-17 14:24

可能重复的问题:
如何在Python中检查一个IP是否在某个网络中

我有一个目标IP地址,来自一个文件,比如说 ip1 = 172.16.0.34;还有另一个文件,里面有(子网,掩码,下一个跳转地址),也就是 172.16.0.0255.255.255.0117.120.10.1

我需要检查这个输入的地址 ip1 是否和路由表中某个特定路由的子网条目匹配,这个匹配是通过和该条目的掩码进行“与”运算来完成的。如果目标地址在掩码下匹配,就把这个路由添加到这个数据包的可行路由列表中。

2 个回答

0

我假设他们一开始是字符串:

ipadd = '192.168.1.1'
mask = '255.255.0.0'
anded = list()
for ip, m in zip(ipadd.split('.'),mask.split('.')):
   anded.append(str(int(ip) & int(m)))
subnet = '.'.join(anded)
0

试着把它们放进一个数组里,然后进行比较!这只是我的建议...

撰写回答