【问题标题】:how to perform AND operation on ip address and subnet mask in python [duplicate]如何在python中对IP地址和子网掩码执行AND运算[重复]
【发布时间】:2013-01-16 09:38:52
【问题描述】:

可能重复:
How can I check if an ip is in a network in python

假设ip1 = 172.16.0.34,我有一个来自文件的目标IP地址;我还有一个包含(子网、掩码、下一跳)的文件,即172.16.0.0255.255.255.0117.120.10.1

在与路由表中该条目的网络掩码进行“与”运算后,我必须检查传入地址 ip1 是否与特定路由的子网条目匹配。如果目标在掩码下匹配,则将该路由添加到此数据包的可行路由列表中

【问题讨论】:

  • 有人告诉我这是家庭作业,您的帖子是从 pdf 讲义中复制粘贴的
  • 另外,你试过什么?

标签: python python-3.x


【解决方案1】:

我假设他们的字符串开头是:

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)

【讨论】:

  • 我试过了,但它抛出了一个错误:ValueError: invalid literal for int() with base 10: ''
【解决方案2】:

尝试将它们放在一个数组中然后比较!这只是我的建议……

【讨论】:

    猜你喜欢
    • 2011-01-19
    • 2011-01-31
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 2015-07-02
    • 2012-02-10
    • 2015-10-18
    相关资源
    最近更新 更多