You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python检测ARP扫描并获取攻击者源IP的技术实现问询

检测ARP扫描行为并定位攻击者IP的实现方案

想要检测网络里的ARP扫描并揪出攻击者IP?通过统计异常数量的ARP请求包就可以做到——毕竟ARP扫描本质就是向广播MAC地址发送大量请求,以此探测网段内的存活主机。下面是一个基于pyshark库的可行实现,附详细逻辑说明:

实现代码

import pyshark

# 读取目标pcap文件,过滤ARP请求+广播目标MAC的数据包,仅加载摘要信息提升效率
cap = pyshark.FileCapture('arpscan.pcap', display_filter='arp.opcode==1 && arp.dst.hw_mac==00:00:00:00:00:00', only_summaries=True)
count = 0

for pkt in cap:
    count += 1
    # 当ARP请求数超过阈值时,判定存在扫描行为
    if count > 10:
        print("\nSomeone is scanning your network!\n")
        print("To find the attacker's IP, check the 'Tell' section in the packet summary.")

代码逻辑拆解

  • 精准过滤扫描特征包:arp.opcode==1锁定ARP请求包(opcode=2为响应包),arp.dst.hw_mac==00:00:00:00:00:00筛选目标MAC为广播地址的数据包——这是ARP扫描的核心特征,攻击者靠广播请求覆盖整个网段。
  • 轻量化处理:only_summaries=True让pyshark只加载数据包的摘要信息,不用解析完整包结构,既省内存又提速。
  • 阈值可灵活调整:这里设的阈值是10,你可以根据自己网络的正常ARP请求频率修改这个数值,比如办公网络可以适当调高,避免误报。
  • 攻击者IP定位:数据包摘要里的「Tell」字段会显示发送ARP请求的源IP,这就是攻击者的地址啦。

内容的提问来源于stack exchange,提问作者goldy mata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:47:21