ARP协议工作原理
在每台主机中都有一张ARP高速缓存表,这张表每个一段时间(好像是默认10分钟)更新一次。更新时,主机向局域网内的所有主机发送一个ARP协议的广播包,收到广播的主机则会回应一个单播,主机则会将单中的ip地址和对应的mac写入到缓存表中。下次进行请求时,由ARP协议来完成IP地址到MAC地址的转换,完成连接。
安装模块
- 安装网络嗅探模块scapy
pip install scapy
代码实现
"""
scapy局域网主机发现
arp协议查找
"""
from scapy.all import * #导入网络嗅探模块
from concurrent.futures import ThreadPoolExecutor
from optparse import OptionParser
def scan_host(host):
pkt=Ether()/ARP(pdst=host)
result=srp1(pkt,timeout=2,verbose=False)
if result:
#输出在线主机ip和m