【问题标题】:How to get ip address from known mac address on Linux using Python如何使用 Python 从 Linux 上的已知 MAC 地址获取 IP 地址
【发布时间】:2014-07-11 22:09:03
【问题描述】:

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

【问题讨论】:

  • 你为什么要问一个问题来回复它?
  • 这个问题似乎跑题了,因为它不是一个真正的问题。
  • 我没有问任何问题。我以 wiki 风格的答案发布了这个问题,网站上允许这样做。

标签: python linux networking


【解决方案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

【讨论】:

  • 它回答了你的问题吗?如果不是,则将此文本移至您的问题。
  • 这并没有解释如何做到这一点(没有可靠的方法)它只是提供了一个指向您的代码的链接。
  • 我将此答案标记为请版主注意。
  • 我打算为 stackoverflow 的其他用户提供解决方案。当您提出问题时,可以选择以 wiki 样式回答。这就是我在这里所做的。我将发布更多代码以获得更详细的答案。
  • 我修正了答案,使其更有用。请查看。
猜你喜欢
  • 1970-01-01
  • 2016-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-14
相关资源
最近更新 更多