UUID -> getnode()
Verfasst: Donnerstag 15. Mai 2008, 15:48
Hallo,
Ich habe gerade nochmal nachgedacht und eine Lösung gefunden ich werde mich wieder melden wenn ich es habe.
ich würde für ein kleines Tool gerne alle MAC-Adressen des Rechners auslesen.
Ich habe da auch schon die passende Funktion gefunden, nur weiß ich sie nicht für meine bedürfnisse umzuschreiben. Und da dachte ich, dass ihr mir vieleicht einen kleinen Denkanstoß bekommen könnte:
Es wird ipconfig ausgeführt und von der ausgabe die erste MAC zurück gegeben. Aber ich z.B habe 2x Virtuelle und 2x Physikalische Adapter. Wie könnte ich denn alle MAC-Adressen von allen Adaptern zurück geben lassen?
Das ist hier vieleicht nicht richtig plaziert aber mir ist aufgefallen das die Funktion "_netbios_getnode()" in UUID einen Tipp fehlen enthält.
Der Fokus liegt hier auf "win32wnet". Oder liege ich da falsch???
Patrick
Ich habe gerade nochmal nachgedacht und eine Lösung gefunden ich werde mich wieder melden wenn ich es habe.
ich würde für ein kleines Tool gerne alle MAC-Adressen des Rechners auslesen.
Ich habe da auch schon die passende Funktion gefunden, nur weiß ich sie nicht für meine bedürfnisse umzuschreiben. Und da dachte ich, dass ihr mir vieleicht einen kleinen Denkanstoß bekommen könnte:
Code: Alles auswählen
def _ipconfig_getnode():
"""Get the hardware address on Windows by running ipconfig.exe."""
import os, re
dirs = ['', r'c:\windows\system32', r'c:\winnt\system32']
try:
import ctypes
buffer = ctypes.create_string_buffer(300)
ctypes.windll.kernel32.GetSystemDirectoryA(buffer, 300)
dirs.insert(0, buffer.value.decode('mbcs'))
except:
pass
for dir in dirs:
try:
pipe = os.popen(os.path.join(dir, 'ipconfig') + ' /all')
except IOError:
continue
for line in pipe:
value = line.split(':')[-1].strip().lower()
if re.match('([0-9a-f][0-9a-f]-){5}[0-9a-f][0-9a-f]', value):
return int(value.replace('-', ''), 16)
Das ist hier vieleicht nicht richtig plaziert aber mir ist aufgefallen das die Funktion "_netbios_getnode()" in UUID einen Tipp fehlen enthält.
Code: Alles auswählen
def _netbios_getnode():
"""Get the hardware address on Windows using NetBIOS calls.
See http://support.microsoft.com/kb/118623 for details."""
import win32wnet, netbios
ncb = netbios.NCB()
...
Patrick