mirror of https://github.com/python/cpython
Issue #22902: The "ip" command is now used on Linux to determine MAC address
in uuid.getnode(). Pach by Bruno Cauet.
This commit is contained in:
parent
16e802f4ae
commit
ac4aa7b6aa
|
@ -320,6 +320,12 @@ class TestUUID(unittest.TestCase):
|
|||
if node is not None:
|
||||
self.check_node(node, 'ifconfig')
|
||||
|
||||
@unittest.skipUnless(os.name == 'posix', 'requires Posix')
|
||||
def test_ip_getnode(self):
|
||||
node = uuid._ip_getnode()
|
||||
if node is not None:
|
||||
self.check_node(node, 'ip')
|
||||
|
||||
@unittest.skipUnless(os.name == 'posix', 'requires Posix')
|
||||
def test_arp_getnode(self):
|
||||
node = uuid._arp_getnode()
|
||||
|
|
11
Lib/uuid.py
11
Lib/uuid.py
|
@ -356,6 +356,13 @@ def _ifconfig_getnode():
|
|||
if mac:
|
||||
return mac
|
||||
|
||||
def _ip_getnode():
|
||||
"""Get the hardware address on Unix by running ip."""
|
||||
# This works on Linux with iproute2.
|
||||
mac = _find_mac('ip', 'link list', [b'link/ether'], lambda i: i+1)
|
||||
if mac:
|
||||
return mac
|
||||
|
||||
def _arp_getnode():
|
||||
"""Get the hardware address on Unix by running arp."""
|
||||
import os, socket
|
||||
|
@ -538,8 +545,8 @@ def getnode():
|
|||
if sys.platform == 'win32':
|
||||
getters = [_windll_getnode, _netbios_getnode, _ipconfig_getnode]
|
||||
else:
|
||||
getters = [_unixdll_getnode, _ifconfig_getnode, _arp_getnode,
|
||||
_lanscan_getnode, _netstat_getnode]
|
||||
getters = [_unixdll_getnode, _ifconfig_getnode, _ip_getnode,
|
||||
_arp_getnode, _lanscan_getnode, _netstat_getnode]
|
||||
|
||||
for getter in getters + [_random_getnode]:
|
||||
try:
|
||||
|
|
|
@ -217,6 +217,7 @@ Pierre Carrier
|
|||
Terry Carroll
|
||||
Edward Catmur
|
||||
Lorenzo M. Catucci
|
||||
Bruno Cauet
|
||||
Donn Cave
|
||||
Charles Cazabon
|
||||
Jesús Cea Avión
|
||||
|
|
|
@ -191,6 +191,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #22902: The "ip" command is now used on Linux to determine MAC address
|
||||
in uuid.getnode(). Pach by Bruno Cauet.
|
||||
|
||||
- Issue #22960: Add a context argument to xmlrpclib.ServerProxy constructor.
|
||||
|
||||
- Issue #22389: Add contextlib.redirect_stderr().
|
||||
|
|
Loading…
Reference in New Issue