mirror of
https://github.com/python/cpython.git
synced 2025-09-20 15:40:32 +00:00
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
4 changed files with 19 additions and 2 deletions
|
@ -320,6 +320,12 @@ class TestUUID(unittest.TestCase):
|
||||||
if node is not None:
|
if node is not None:
|
||||||
self.check_node(node, 'ifconfig')
|
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')
|
@unittest.skipUnless(os.name == 'posix', 'requires Posix')
|
||||||
def test_arp_getnode(self):
|
def test_arp_getnode(self):
|
||||||
node = uuid._arp_getnode()
|
node = uuid._arp_getnode()
|
||||||
|
|
11
Lib/uuid.py
11
Lib/uuid.py
|
@ -356,6 +356,13 @@ def _ifconfig_getnode():
|
||||||
if mac:
|
if mac:
|
||||||
return 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():
|
def _arp_getnode():
|
||||||
"""Get the hardware address on Unix by running arp."""
|
"""Get the hardware address on Unix by running arp."""
|
||||||
import os, socket
|
import os, socket
|
||||||
|
@ -538,8 +545,8 @@ def getnode():
|
||||||
if sys.platform == 'win32':
|
if sys.platform == 'win32':
|
||||||
getters = [_windll_getnode, _netbios_getnode, _ipconfig_getnode]
|
getters = [_windll_getnode, _netbios_getnode, _ipconfig_getnode]
|
||||||
else:
|
else:
|
||||||
getters = [_unixdll_getnode, _ifconfig_getnode, _arp_getnode,
|
getters = [_unixdll_getnode, _ifconfig_getnode, _ip_getnode,
|
||||||
_lanscan_getnode, _netstat_getnode]
|
_arp_getnode, _lanscan_getnode, _netstat_getnode]
|
||||||
|
|
||||||
for getter in getters + [_random_getnode]:
|
for getter in getters + [_random_getnode]:
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -217,6 +217,7 @@ Pierre Carrier
|
||||||
Terry Carroll
|
Terry Carroll
|
||||||
Edward Catmur
|
Edward Catmur
|
||||||
Lorenzo M. Catucci
|
Lorenzo M. Catucci
|
||||||
|
Bruno Cauet
|
||||||
Donn Cave
|
Donn Cave
|
||||||
Charles Cazabon
|
Charles Cazabon
|
||||||
Jesús Cea Avión
|
Jesús Cea Avión
|
||||||
|
|
|
@ -191,6 +191,9 @@ Core and Builtins
|
||||||
Library
|
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 #22960: Add a context argument to xmlrpclib.ServerProxy constructor.
|
||||||
|
|
||||||
- Issue #22389: Add contextlib.redirect_stderr().
|
- Issue #22389: Add contextlib.redirect_stderr().
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue