如何在Linux上使用Python从已知MAC地址获取IP地址
如果我知道一台机器的MAC地址,怎么找到它的IP地址呢?
1 个回答
1
我需要实现这个功能,所以我写了一个可以做到的Python脚本:
import scapy
from multiprocessing import Process, Pool
def _arp_request(ip_addr):
answer, _ = srp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=ip_addr), verbose=0, timeout=.5)
if answer:
return (answer[0][1].src, answer[0][0].pdst)
pool = Pool(50)
mac_addrs = [ad for ad in pool.map(_arp_request, addrs) if ad]
addrs是一个可能的IP地址列表,用来尝试连接。
这个脚本会快速发送arp请求,帮助你绘制出网络的结构。
或者你也可以使用我写的模块(它会保存一些数据,以减少arp请求的次数):
>>> from ethip import ethip
>>> print ethip.getip('00:1E:C9:56:3C:8E', '10.5.42.255')
10.5.42.3