def get_ip_info(*a, **kw): """filter away ipv6 link local addresses that may or may not exist on the device depending on OS configuration""" ipv4addr, ipv4netmask, ipv4addrs, ipv6addrs = \ addresses.getIpInfo(*a, **kw) ipv6addrs = [ addr for addr in ipv6addrs if not netaddr.IPAddress(addr.split('/')[0]).is_link_local()] return ipv4addr, ipv4netmask, ipv4addrs, ipv6addrs
def get_ip_info(*a, **kw): """filter away ipv6 link local addresses that may or may not exist on the device depending on OS configuration""" ipv4addr, ipv4netmask, ipv4addrs, ipv6addrs = \ addresses.getIpInfo(*a, **kw) ipv6addrs = [ addr for addr in ipv6addrs if not netaddr.IPAddress(addr.split('/')[0]).is_link_local() ] return ipv4addr, ipv4netmask, ipv4addrs, ipv6addrs
def test_netinfo_ignoring_link_scope_ip(self): v4_link = {'family': 'inet', 'address': '169.254.0.0/16', 'scope': 'link', 'prefixlen': 16, 'flags': ['permanent']} v4_global = {'family': 'inet', 'address': '192.0.2.2/24', 'scope': 'global', 'prefixlen': 24, 'flags': ['permanent']} v6_link = {'family': 'inet6', 'address': 'fe80::5054:ff:fea3:f9f3/64', 'scope': 'link', 'prefixlen': 64, 'flags': ['permanent']} v6_global = {'family': 'inet6', 'address': 'ee80::5054:ff:fea3:f9f3/64', 'scope': 'global', 'prefixlen': 64, 'flags': ['permanent']} ipaddrs = {'eth0': (v4_link, v4_global, v6_link, v6_global)} ipv4addr, ipv4netmask, ipv4addrs, ipv6addrs = \ addresses.getIpInfo('eth0', ipaddrs=ipaddrs) self.assertEqual(ipv4addrs, ['192.0.2.2/24']) self.assertEqual(ipv6addrs, ['ee80::5054:ff:fea3:f9f3/64'])
def _get_net_info(attrs, interface, dhcpv4ifaces, dhcpv6ifaces, routes): mtu = mtus.getMtu(interface) addr, netmask, ipv4addrs, ipv6addrs = addresses.getIpInfo(interface) dhcpv4 = dhcp.dhcp_used(interface, dhcpv4ifaces, attrs) dhcpv6 = dhcp.dhcp_used(interface, dhcpv6ifaces, attrs, family=6) gateway = netinfo_routes.get_gateway(routes, interface) ipv6gateway = netinfo_routes.get_gateway(routes, interface, family=6) return { 'mtu': str(mtu), 'addr': addr, 'gateway': gateway, 'netmask': netmask, 'dhcpv4': dhcpv4, 'ipv4addrs': ipv4addrs, 'ipv6addrs': ipv6addrs, 'ipv6gateway': ipv6gateway, 'dhcpv6': dhcpv6, 'cfg': {'BOOTPROTO': 'dhcp' if dhcpv4 else 'none'}}
def _get_net_info(interface, routes): mtu = mtus.getMtu(interface) ipaddrs = addresses.getIpAddrs() addr, netmask, ipv4addrs, ipv6addrs = addresses.getIpInfo(interface, ipaddrs) dhcpv4, dhcpv6 = dhcp.dhcp_status(interface, ipaddrs) gateway = netinfo_routes.get_gateway(routes, interface) ipv6gateway = netinfo_routes.get_gateway(routes, interface, family=6) return { 'mtu': str(mtu), 'addr': addr, 'gateway': gateway, 'netmask': netmask, 'dhcpv4': dhcpv4, 'ipv4addrs': ipv4addrs, 'ipv6addrs': ipv6addrs, 'ipv6autoconf': addresses.is_ipv6_local_auto(interface), 'ipv6gateway': ipv6gateway, 'dhcpv6': dhcpv6, 'cfg': {'BOOTPROTO': 'dhcp' if dhcpv4 else 'none'}}
def _get_net_info(attrs, interface, dhcpv4ifaces, dhcpv6ifaces, routes): mtu = mtus.getMtu(interface) addr, netmask, ipv4addrs, ipv6addrs = addresses.getIpInfo(interface) dhcpv4 = dhcp.dhcp_used(interface, dhcpv4ifaces, attrs) dhcpv6 = dhcp.dhcp_used(interface, dhcpv6ifaces, attrs, family=6) gateway = netinfo_routes.get_gateway(routes, interface) ipv6gateway = netinfo_routes.get_gateway(routes, interface, family=6) return { 'mtu': str(mtu), 'addr': addr, 'gateway': gateway, 'netmask': netmask, 'dhcpv4': dhcpv4, 'ipv4addrs': ipv4addrs, 'ipv6addrs': ipv6addrs, 'ipv6gateway': ipv6gateway, 'dhcpv6': dhcpv6, 'cfg': { 'BOOTPROTO': 'dhcp' if dhcpv4 else 'none' } }
def get_ip_info(*a, **kw): """filter away ipv6 link local addresses that may or may not exist on the device depending on OS configuration""" ipv4addr, ipv4netmask, ipv4addrs, ipv6addrs = \ addresses.getIpInfo(*a, **kw) return ipv4addr, ipv4netmask, ipv4addrs, ipv6addrs