本文整理匯總了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