如何在Python中对IP地址和子网掩码执行AND操作
可能重复的问题:
如何在Python中检查一个IP是否在某个网络中
我有一个目标IP地址,来自一个文件,比如说 ip1 = 172.16.0.34
;还有另一个文件,里面有(子网,掩码,下一个跳转地址),也就是 172.16.0.0
,255.255.255.0
,117.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
试着把它们放进一个数组里,然后进行比较!这只是我的建议...