本文整理汇总了Python中ipaddr.ip_network方法的典型用法代码示例。如果您正苦于以下问题:Python ipaddr.ip_network方法的具体用法?Python ipaddr.ip_network怎么用?Python ipaddr.ip_network使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ipaddr
的用法示例。
在下文中一共展示了ipaddr.ip_network方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: cidrmatch
# 需要导入模块: import ipaddr [as 别名]
# 或者: from ipaddr import ip_network [as 别名]
def cidrmatch(self, ipaddrs, n):
"""Match connect IP against a CIDR network of other IP addresses.
Examples:
>>> c = query(s='strong-bad@email.example.com',
... h='mx.example.org', i='192.0.2.3')
>>> c.p = 'mx.example.org'
>>> c.r = 'example.com'
>>> c.cidrmatch(['192.0.2.3'],32)
True
>>> c.cidrmatch(['192.0.2.2'],32)
False
>>> c.cidrmatch(['192.0.2.2'],31)
True
>>> six = query(s='strong-bad@email.example.com',
... h='mx.example.org', i='2001:0db8:0:0:0:0:0:0001')
>>> six.p = 'mx.example.org'
>>> six.r = 'example.com'
>>> six.cidrmatch(['2001:0DB8::'],127)
True
>>> six.cidrmatch(['2001:0DB8::'],128)
False
>>> six.cidrmatch(['2001:0DB8:0:0:0:0:0:0001'],128)
True
"""
try:
for netwrk in [ipaddress.ip_network(ip) for ip in ipaddrs]:
network = netwrk.supernet(new_prefix=n)
if isinstance(self.iplist, bool):
if network.__contains__(self.ipaddr):
return True
else:
if n < self.cidrmax:
self.iplist.append(network)
else:
self.iplist.append(network.ip)
except AttributeError:
for netwrk in [ipaddress.IPNetwork(ip,strict=False) for ip in ipaddrs]:
network = netwrk.supernet(new_prefix=n)
if isinstance(self.iplist, bool):
if network.__contains__(self.ipaddr):
return True
else:
if n < self.cidrmax:
self.iplist.append(network)
else:
self.iplist.append(network.ip)
return False