【发布时间】:2014-07-11 22:09:03
【问题描述】:
如果我知道机器的mac地址,如何找到ip地址?
【问题讨论】:
-
你为什么要问一个问题来回复它?
-
这个问题似乎跑题了,因为它不是一个真正的问题。
-
我没有问任何问题。我以 wiki 风格的答案发布了这个问题,网站上允许这样做。
标签: python linux networking
如果我知道机器的mac地址,如何找到ip地址?
【问题讨论】:
标签: python linux networking
我需要能够做到这一点,所以我写了一个可以做到的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
【讨论】: