diff --git a/console_conf/controllers/identity.py b/console_conf/controllers/identity.py index b1a768a8..007ddf5c 100644 --- a/console_conf/controllers/identity.py +++ b/console_conf/controllers/identity.py @@ -80,9 +80,7 @@ def write_login_details_standalone(): return 0 from probert import network from subiquitycore.models.network import NETDEV_IGNORED_IFACE_NAMES, NETDEV_IGNORED_IFACE_TYPES - import ipaddress import operator - import socket observer = network.UdevObserver() observer.start() ips = [] @@ -91,8 +89,8 @@ def write_login_details_standalone(): continue if l.name in NETDEV_IGNORED_IFACE_NAMES: continue - ips.extend([str(ipaddress.IPv4Interface(a).ip) for a in l.ip.get(socket.AF_INET, [])]) - ips.extend([str(ipaddress.IPv6Interface(a).ip) for a in l.ip.get(socket.AF_INET6, [])]) + for _, addr in sorted(l.addresses.items()): + ips.append(addr.ip) key_file = os.path.join(owner['homedir'], ".ssh/authorized_keys") fingerprints = run_command(['ssh-keygen', '-lf', key_file])['output'].replace('\r', '').splitlines() write_login_details(sys.stdout, owner['realname'], owner['username'], ips, fingerprints) diff --git a/subiquitycore/models/network.py b/subiquitycore/models/network.py index b12d27af..2c1f6dca 100644 --- a/subiquitycore/models/network.py +++ b/subiquitycore/models/network.py @@ -218,7 +218,7 @@ class Networkdev: fam = AF_INET elif version == 6: fam = AF_INET6 - return [ipaddress.ip_interface(a).ip for a in self._net_info.ip.get(fam, [])] + return [addr.ip for _, addr in sorted(self._net_info.addresses.items()) if addr.family == fam] @property def actual_ip_addresses(self):