Michael Felt <aixto...@felt.demon.nl> added the comment:

I have modified -

_NODE_GETTERS_WIN32 = [_windll_getnode, _netbios_getnode, _ipconfig_getnode]

_NODE_GETTERS_UNIX = [_unix_getnode, _ifconfig_getnode, _ip_getnode,
                      _arp_getnode, _lanscan_getnode, _netstat_getnode]

to:

  +683  # _OS_GETTERS, when known, are targetted for a specific OS or platform.
  +684  # The order is by 'common practice' on the specified platform.
  +685  # Note: 'posix' and 'windows' _OS_GETTERS are prefixed by a 
dll/dlload() method
  +686  # which, when successful, means none of these "external" methods are 
called.
  +687  # _GETTERS is (also) used by test_uuid.py to SkipUnless(), e.g.,
  +688  #     @unittest.skipUnless(_uuid._ifconfig_getnode in _uuid._GETTERS, 
...)
  +689  if _LINUX:
  +690      _OS_GETTERS = [_ip_getnode, _ifconfig_getnode]
  +691  elif _DARWIN:
  +692      _OS_GETTERS = [_ifconfig_getnode, _arp_getnode, _netstat_getnode]
  +693  elif _WINDOWS:
  +694      _OS_GETTERS = [_netbios_getnode, _ipconfig_getnode]
  +695  elif _AIX:
  +696      _OS_GETTERS = [_netstat_getnode]
  +697  else:
  +698      _OS_GETTERS = [_ifconfig_getnode, _ip_getnode, _arp_getnode,
  +699                     _netstat_getnode, _lanscan_getnode]
  +700  if os.name == 'posix':
  +701      _GETTERS = [_unix_getnode] + _OS_GETTERS
  +702  elif os.name == 'nt':
  +703      _GETTERS = [_windll_getnode] + _OS_GETTERS
  +704  else:
  +705      _GETTERS = _OS_GETTERS

The shortened list, and in particular the move of _ip_getnode before 
_ifconfig_getnode is my experience that the "old" programs such as ifconfig, 
arp, and netstat are (occasionally) not available - with "ip" being the 
replacement for all.

Further, re: linux, on the two distros I could test (centos and debian) neither 
arp nor netstat return a (useable) MACADDR aka "node" value.

Requesting verification from people with other platforms.

Also, would like to know specifics for other platforms (e.g., OpenBSD, HPUX, 
Solaris). 

More generally speaking - if os.name is "posix" or "windows" - this  lists are 
almost irrelevant because the "DLL" _uuid module should provide the needed 
value.

The "plus" is that on systems that audit such things, there are fewer calls to 
non-existent programs and/or negative side-effects from calling programs that 
can/do not provide any useful data.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue28009>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to