使用Python从设备获取MAC地址

使用Python从设备获取MAC地址,第1张

使用Python从设备获取MAC地址

用Python回答问题取决于您的平台。我没有Windows,因此以下解决方案可在我写过的Linux机器上使用。对正则表达式进行小的更改将使其在OS
X中运行。

首先,您必须ping通目标。这将把目标(只要它在您的网络掩码之内,这听起来像是在这种情况下)就放置在系统的ARP缓存中。观察:

13:40 jsmith@undertow% ping 97.107.138.15PING 97.107.138.15 (97.107.138.15) 56(84) bytes of data.64 bytes from 97.107.138.15: icmp_seq=1 ttl=64 time=1.25 ms^C13:40 jsmith@undertow% arp -n 97.107.138.15Address       HWtype  HWaddressFlags Mask Iface97.107.138.15 ether   fe:fd:61:6b:8a:0f   C          eth0

知道这一点,您就做了一点子处理的魔术-否则您自己编写了ARP缓存检查代码,而您不想这样做:

>>> from subprocess import Popen, PIPE>>> import re>>> IP = "1.2.3.4">>> # do_ping(IP)>>> # The time between ping and arp check must be small, as ARP may not cache long>>> pid = Popen(["arp", "-n", IP], stdout=PIPE)>>> s = pid.communicate()[0]>>> mac = re.search(r"(([a-fd]{1,2}:){5}[a-fd]{1,2})", s).groups()[0]>>> mac"fe:fd:61:6b:8a:0f"


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5630123.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存