从ARP请求中获取MAC地址

0 投票
1 回答
815 浏览
提问于 2025-04-18 02:43

你好,我正在尝试写一个Python脚本,从arp -n命令中获取MAC地址,但我一直在努力只提取出MAC地址。

现在的代码是:

for ipaddr in uip:
 pid = Popen(["arp", "-n", ipaddr], stdout=PIPE)
 s = pid.communicate()[0]
 mac = re.search(r"(([a-f\d]{1,2}\:){5}[a-f\d]{1,2})", s) 
 print mac

uip在脚本开始时已经声明了。

当前代码的输出是:

<_sre.SRE_Match object at 0x7f18f0ea9690>
<_sre.SRE_Match object at 0x7f18f0ea9718>
<_sre.SRE_Match object at 0x7f18f0ea9690>
<_sre.SRE_Match object at 0x7f18f0ea9718>
None
<_sre.SRE_Match object at 0x7f18f0ea9718> 
<_sre.SRE_Match object at 0x7f18f0ea9690>
<_sre.SRE_Match object at 0x7f18f0ea9718>
<_sre.SRE_Match object at 0x7f18f0ea9690>
<_sre.SRE_Match object at 0x7f18f0ea9718>

1 个回答

1

你想要的是那些被括号捕获的结果。你可以通过 mac.groupmac.groups 方法来访问这些结果。

与其用 print mac,不如用 print mac.group(0) if mac else "没有结果"

撰写回答