如何在Linux上使用Python从已知MAC地址获取IP地址

0 投票
1 回答
2852 浏览
提问于 2025-04-18 13:01

如果我知道一台机器的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

撰写回答