我想从Ubuntu上的arp
命令行输出中获取mac地址和相应的ip地址(例如,作为一个以mac address为键和ip地址的字典)作为值。在
$ arp
Address HWtype HWaddress Flags Mask Iface
XX.X.X.X(XX) ether XX:XX:XX:XX:XX:XX C eth0
<host name> ether XX:XX:XX:XX:XX:XX C eth0
ip地址的正则表达式(?P<ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})
和mac的正则表达式(?P<mac>[0-9a-f]{2}[:]){5}([0-9a-f]{2})
各自都能很好地工作。我怎么能把这两者结合起来而忽略ip地址和Mac电脑之间的一切呢?如何改进ip地址正则表达式以匹配主机名?如果有更好的替代方法可以使用arp
来同时获得ip地址和mac,我很乐意使用这个命令。在
我建议通过减少文本解析的开销,从shell本身和那里按列提取。在
您也可以使用Pythonscapy模块来获得mac
要加入它们并忽略中间信息,只需在中间添加“.*”,这样它就可以匹配任何内容,但不会分配给组:
为了解释主机名,最好不要试图确保第一个字段是正确的IP或主机名。只需捕获第一个字段,直到空间:
^{pr2}$所以第一个有洞和MAC的场最终是:
相关问题 更多 >
编程相关推荐