From eb886db1e99a15f15a2342aa496197a5f88fa9c8 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 17 Mar 2020 15:51:42 +0100 Subject: bpo-39991: uuid._netstat_getnode() ignores IPv6 addresses (GH-19043) uuid.getnode() now skips IPv6 addresses with the same string length than a MAC address (17 characters): only use MAC addresses. --- Lib/uuid.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'Lib/uuid.py') diff --git a/Lib/uuid.py b/Lib/uuid.py index 224a766ff2..3b3abc2a45 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -456,7 +456,10 @@ def _find_mac_under_heading(command, args, heading): try: words = line.rstrip().split() word = words[column_index] - if len(word) == 17: + # Accept 'HH:HH:HH:HH:HH:HH' MAC address (ex: '52:54:00:9d:0e:67'), + # but reject IPv6 address (ex: 'fe80::5054:ff:fe9') detected + # by '::' pattern. + if len(word) == 17 and b'::' not in word: mac = int(word.replace(_MAC_DELIM, b''), 16) elif _MAC_OMITS_LEADING_ZEROES: # (Only) on AIX the macaddr value given is not prefixed by 0, e.g. -- cgit v1.2.1