MACADDRESSを取得したい
Ohloh Code Search
Determining Ethernet HW Address - comp.lang.python | Google Groups
404 Not Found
[python-win32] detecting windows type
検索すると、上記サイトがひっかかり、できそうな感じ。
試しに、
import netbios
すると、
>>> from netbios import * Traceback (most recent call last): File "", line 1, in ImportError: No module named netbios
どうも、pyWin32モジュールをインストールする必要があるよう。
Win32 Extensions for Python
からダウンロード。
>>> import netbios >>> help(netbios) Help on module netbios: NAME netbios FILE c:\python25\lib\site-packages\win32\lib\netbios.py
import 成功。
FrontPage - py2exe.org
py2exeもインストールしておいた。
[python-win32] detecting windows type
このメーリングリストの投稿にあるものがそのまま使える感じだったので、使わせてもらった。
- getmacs_winarp()
- getmacs_ipconfig()
- getmacs_wmi()
それぞれのメソッドで取得はできることを確認した。
wmi は、
404 Not Found
からダウンロードでき、サンプルも載っている。
ローカル接続1のMACADDRESSだけが欲しい場合は、どうすれば取得できるのだろうか。
決まっているのかな。
Win32_NetworkAdapterConfiguration の情報は、
Win32_NetworkAdapterConfiguration class (Windows)
にあるので、必要な情報はここで調べること。
確実か分からないけど、
>>> for list in c.Win32_NetworkAdapterConfiguration(IPEnabled=1): ... print list.Caption ... [00000008] Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller [00000012] Bluetooth Personal Area Network [00000016] VMware Virtual Ethernet Adapter for VMnet1 [00000017] VMware Virtual Ethernet Adapter for VMnet8
で、どうも、index が昇順に返って来るみたい。
最初のMACADDRESSが欲しいから、
def getmacs_wmi(): """uses wmi interface to find mac addresses""" # this uses wmi from http://tgolden.sc.sabren.com/python/wmi.html # its from the example at http://tgolden.sc.sabren.com/python/wmi_cookbook.html#ip_addresses import wmi c = wmi.WMI () for interface in c.Win32_NetworkAdapterConfiguration (IPEnabled=1): hasip = False for ipaddress in interface.IPAddress: if ipaddress: hasip = True if hasip: yield interface.MACAddress return
と、したけど大丈夫かな。
本番機で確認だ。