如何用IPy确定白名单中的IP地址?

时间:2013-10-23 15:28:46

标签: python networking

在Python中,我使用IPy模块来处理一组IP地址,例如: - 谷歌的DNS(8.8.8.8) - 其他一些Google IP,例如209.85.128.0/17 等

myWhiteList = Set(IP('8.8.8.8'), IP('209.85.128.0/17'))

目前,我采用IP地址和子网掩码,并创建一个包含表格中所有IP的巨大列表:

for i in IP('209.85.128.0/17'):
    myList.add(i)

然后检查我的给定IP是否在此主列表中。有没有更有效的方法来检查IPy列表中的IP而不是像我这样扩展IP?

1 个答案:

答案 0 :(得分:3)

this

from IPy import IP
if '192.168.0.1' in IP('192.168.0.0/30'):
    print "My IP is in the whitelist! Yay!"

或者在您的情况下,如果列表中有多个网络:

for white_net in myWhiteList:
    if my_ip in white_net:
        print "My IP is in the whitelist! Yay!"
        break

或者,您可以将它组合在一行中:

my_ip = '209.85.128.1'
is_in_whitelist = any([my_ip in white_net for white_net in myWhiteList])