Python ipaddr.ip_network() Examples
The following are 1
code examples of ipaddr.ip_network().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
ipaddr
, or try the search function
.
Example #1
Source File: spf.py From mailin with MIT License | 4 votes |
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