如何使用Python从Linux上的已知mac地址获取IP地址

时间:2014-07-11 22:09:04

标签: python linux networking

如果我知道机器的mac地址,我怎么能找到ip地址?

1 个答案:

答案 0 :(得分: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