import netifaces as nif
def mac_for_ip(ip):
'Returns a list of MACs for interfaces that have given IP, returns None if not found'
for i in nif.interfaces():
addrs = nif.ifaddresses(i)
try:
if_mac = addrs[nif.AF_LINK][0]['addr']
if_ip = addrs[nif.AF_INET][0]['addr']
except IndexError, KeyError: #ignore ifaces that dont have MAC or IP
if_mac = if_ip = None
if if_ip == ip:
return if_mac
return None
使用netifaces模块。它也是on PyPI,因此您可以通过
easy_install
或pip
安装它。无法检索外部IP的MAC地址。
请参阅how to get mac address of external IP in C#上的讨论,了解更多说明。
正如vartec所建议的,
netifaces
应该可以很好地从IP转到iface:测试:
相关问题 更多 >
编程相关推荐