Erste MAC-Adresse
Brauche ich ein cross-Plattform-Methode, die Bestimmung der MAC-Adresse eines Computers, der zur Laufzeit. Für windows die " wmi " - Modul verwendet werden kann, und die einzige Methode, unter Linux die ich finden konnte, war zum ausführen von ifconfig und führen Sie einen regex über seinen Ausgang. Ich weiß nicht, wie mit einem Paket, das funktioniert nur auf einem OS, und analysieren die Ausgabe von einem anderen Programm scheint nicht sehr elegant nicht zu erwähnen, fehleranfällig.
Kennt jemand ein cross-Plattform-Methode (windows und linux) - Methode auf, um die MAC-Adresse? Wenn nicht, weiß jemand mehr elegante Methoden, dann die, die ich oben aufgeführt?
InformationsquelleAutor der Frage Mark Roddy | 2008-10-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Python 2.5 enthält eine uuid-Implementierung, die (zumindest eine version) muss die mac-Adresse. Sie können importieren Sie die mac-Suche nach Funktion in Ihren eigenen code leicht:
Den return-Wert der mac-Adresse ist 48-bit-integer.
InformationsquelleAutor der Antwort Armin Ronacher
Die Reine python-Lösung für dieses problem unter Linux, um den MAC für eine bestimmte lokale Schnittstelle, Zitat als Kommentar von vishnubob und zu verbessern, indem auf Ben Mackey in diese activestate Rezept
InformationsquelleAutor der Antwort synthesizerpatel
netifaces ist ein gutes Modul zu nutzen, die zum abrufen der mac-Adresse (und andere Adressen). Es ist plattformunabhängig und macht ein wenig mehr Sinn als die Verwendung von sockel oder uuid.
pypi Lage
Gutes Intro zu netifaces
InformationsquelleAutor der Antwort camflan
Eine andere Sache, die Sie beachten sollten ist, dass
uuid.getnode()
können fake-MAC addr durch die Rücksendung eines random 48-bit-Zahl, die nicht sein kann, was Sie erwarten. Auch gibt es keine explizite Angabe, dass die MAC-Adresse gefälscht, aber Sie konnte erkennen, durch den Aufruf vongetnode()
zweimal und sehen, ob das Ergebnis variiert. Wenn der gleiche Wert zurückgegeben wird sowohl für Anrufe, müssen Sie die MAC-Adresse, sonst erhalten Sie eine gefälschte Adresse.InformationsquelleAutor der Antwort mhawke
Manchmal haben wir mehr als ein Netzwerk-interface ein.
Einer einfachen Methode, um herauszufinden, die mac-Adresse eine bestimmte Schnittstelle, ist:
Aufruf der Methode ist einfach
InformationsquelleAutor der Antwort Julio Schurt
Über meine Antwort von hier: https://stackoverflow.com/a/18031868/2362361
Wäre es wichtig zu wissen, an welche iface Sie möchten, dass der MAC da für viele existieren kann (bluetooth, mehrere Netzwerkkarten, etc.).
Dieser macht den job, wenn Sie wissen, die IP des iface müssen Sie den MAC, mit
netifaces
(erhältlich im PyPI):Testen:
InformationsquelleAutor der Antwort kursancew
Beachten Sie, dass Sie können bauen Sie Ihre eigenen cross-Plattform-Bibliothek in python-bedingte Einfuhren. z.B.
Dies wird Ihnen erlauben, die zur Verwendung von os.system-Aufrufe oder Plattform-spezifische Bibliotheken.
InformationsquelleAutor der Antwort John Fouhy
Für Linux lassen Sie mich Ihnen eine shell-Skript, das zeigt die mac-Adresse und können es ändern (MAC sniffing).
Schnitt arguements kann dffer (ich bin kein Experte) versuchen:
Ändern MAC können wir tun:
wird, ändern Sie die mac-Adresse 00:80:48:BA:d1:30 (vorübergehend, wird wieder zum tatsächlichen beim Neustart).
InformationsquelleAutor der Antwort Sarath Sadasivan Pillai
Ich weiß nicht, von einer einheitlichen Art und Weise, aber hier ist etwas, dass Sie vielleicht nützlich finden:
http://www.codeguru.com/Cpp/I-N/network/networkinformation/article.php/c5451
Was ich tun würde, wäre in diesem Fall sein, wickeln Sie diese in eine Funktion, und basierend auf dem OS wäre es das richtige Kommando, zu analysieren, wie erforderlich, und kehren nur die MAC-Adresse im Format, wie Sie wollen. Seine natürlich alle das gleiche, außer dass Sie nur einmal tun, und es sieht cleaner aus dem main-code.
InformationsquelleAutor der Antwort Mostlyharmless
Können Sie dies mit psutil, die ist cross-Plattform:
InformationsquelleAutor der Antwort Python Novice
Den cross-platform - getmac Paket wird für diese Arbeit, wenn Sie nicht ein Geist, der sich auf eine Abhängigkeit. Es funktioniert mit Python 2.6+ 3.2+. Es wird versuchen, viele verschiedene Methoden, bis entweder immer eine Adresse oder Rücksendung Keine.
Disclaimer: ich bin der Autor des Pakets.
InformationsquelleAutor der Antwort Ghost of Goes
Für Linux können Sie abrufen die MAC-Adresse mit einem SIOCGIFHWADDR ioctl.
Haben Sie tagged die Frage "python". Ich weiß nicht, der eine vorhandene Python-Modul, um diese Informationen zu erhalten. Könnten Sie ctypes Aufruf der ioctl-direkt.
InformationsquelleAutor der Antwort DGentry