🐷
PythonでMAC AddressからIP Addressを調べる
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