ori*_*ari 5 python mac-address python-2.6
我正在使用Windows 7和Python 2.6.我想获得我的网络接口的MAC地址.
我尝试过使用该wmi模块:
def get_mac_address():
c = wmi.WMI ()
for interface in c.Win32_NetworkAdapterConfiguration (IPEnabled=1):
return interface.MACAddress
Run Code Online (Sandbox Code Playgroud)
但是,没有互联网连接时执行时遇到问题.
我尝试过使用该uuid模块:
from uuid import getnode
print getnode()
Run Code Online (Sandbox Code Playgroud)
但是,返回值是MAC地址的48字节表示
66610803803052
Run Code Online (Sandbox Code Playgroud)
1)我应该如何将给定的数字转换为ff:ff:ff:ff:ff:ff格式?
2)有更好的方法来获取MAC地址吗?
尝试使用Python 2:
import uuid
def get_mac():
mac_num = hex(uuid.getnode()).replace('0x', '').upper()
mac = '-'.join(mac_num[i : i + 2] for i in range(0, 11, 2))
return mac
print get_mac()
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Python 3,请尝试以下操作:
import uuid
def get_mac():
mac_num = hex(uuid.getnode()).replace('0x', '').upper()
mac = '-'.join(mac_num[i: i + 2] for i in range(0, 11, 2))
return mac
print (get_mac())
Run Code Online (Sandbox Code Playgroud)
这有效:
>>> address = 1234567890
>>> h = iter(hex(address)[2:].zfill(12))
>>> ":".join(i + next(h) for i in h)
'00:00:49:96:02:d2'
Run Code Online (Sandbox Code Playgroud)
或者:
>>> "".join(c + ":" if i % 2 else c for i, c in enumerate(hex(address)[2:].zfill(12)))[:-1]
'00:00:49:96:02:d2'
Run Code Online (Sandbox Code Playgroud)
或者:
>>> h = hex(address)[2:].zfill(12)
>>> ":".join(i + j for i, j in zip(h[::2], h[1::2]))
'00:00:49:96:02:d2'
Run Code Online (Sandbox Code Playgroud)
首先将数字转换为十六进制,将其填充为 12 个字符,然后将其转换为一系列两个字符字符串,然后用冒号将它们连接起来。然而,这取决于 MAC 查找方法的准确性。
| 归档时间: |
|
| 查看次数: |
15770 次 |
| 最近记录: |