用python構(gòu)造arp數(shù)據(jù)包并獲取局域網(wǎng)內(nèi)部的設備arp信息使用Ether和ARP函數(shù)分別構(gòu)造以太網(wǎng)頭和ARP頭,生成一個ARP請求數(shù)據(jù)包。然后使用srp函數(shù)發(fā)送ARP請求,并指定超時時間和是否輸出詳細信息。最后,遍歷收到的ARP響應,并輸出設備的IP地址和MAC地址。
from scapy.all import *# 構(gòu)造ARP請求數(shù)據(jù)包
arp_req = Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst='192.168.1.0/24')# 發(fā)送ARP請求并獲取ARP響應
arp_resp = srp(arp_req, timeout=2, verbose=False)[0]# 遍歷ARP響應并輸出設備信息
for pkt in arp_resp:mac = pkt[1].hwsrcip = pkt[1].psrcprint(f"IP address: {ip} MAC address: {mac}")