fixes the IPv6 subnet mask problem, plus default values if no IPv4 or IPv6 address is defined.
This commit is contained in:
parent
1c3ea69d9e
commit
d8b84699a5
1 changed files with 12 additions and 4 deletions
|
@ -60,10 +60,18 @@ class Network():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
ip_addr = netifaces.ifaddresses(interface).get(netifaces.AF_INET)
|
ip_addr = netifaces.ifaddresses(interface).get(netifaces.AF_INET)
|
||||||
try:
|
ip6_addr += netifaces.ifaddresses(interface).get(netifaces.AF_INET6)
|
||||||
ip_addr += netifaces.ifaddresses(interface).get(netifaces.AF_INET6)
|
|
||||||
except:
|
# netifaces returns a ipv6 netmask that netaddr does not understand.
|
||||||
logging.debug('No IPv6 addresses defined.')
|
# this strips the netmask down to the correct format for netaddr.
|
||||||
|
# ie, this:
|
||||||
|
# {'addr': 'fe80::ec4:7aff:fe59:ec4a%eno1.50', 'netmask': 'ffff:ffff:ffff:ffff::/64'}
|
||||||
|
# becomes:
|
||||||
|
# {'addr': 'fe80::ec4:7aff:fe59:ec4a%eno1.50', 'netmask': 'ffff:ffff:ffff:ffff::'}
|
||||||
|
#
|
||||||
|
for addr in ip6_addr:
|
||||||
|
addr["netmask"] = re.sub("/\d+$", "", addr["netmask"])
|
||||||
|
ip_addr.append(addr)
|
||||||
|
|
||||||
if NETWORK_IGNORE_IPS and ip_addr:
|
if NETWORK_IGNORE_IPS and ip_addr:
|
||||||
for i, ip in enumerate(ip_addr):
|
for i, ip in enumerate(ip_addr):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue