🐷

PythonでMAC AddressからIP Addressを調べる

2022/03/27に公開

DHCPなネットワークで、MACアドレスを元に操作をしたくて書いてみました。
pip install scapy が必要です。

import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR) # Warning 抑制
from scapy.all import srp1, Ether, ARP

def scan(macaddr: str, nwaddr: str) -> str:
    """MAC address から IP address を調べる

    Args:
        macaddr: 探したい機器の MAC address
        nwaddr: 所属しているネットワークアドレス

    Returns: IP address
    """
    ans = srp1(Ether(dst=macaddr) / ARP(pdst=nwaddr), timeout=2, verbose=2)
    if not ans:
        return ""
    return ans.psrc

print(scan("00:00:1c:ec:0f:ee", "192.168.0.0/24"))

Discussion