LUCIFERLAMO/Network_scanner
GitHub: LUCIFERLAMO/Network_scanner
一个用 Python 和 Scapy 从零实现的 ARP 局域网扫描器,提供设备发现、厂商识别、设备变更监控和 ARP 欺骗检测功能。
Stars: 1 | Forks: 0
# 🔍 NetScan — ARP 网络扫描器与威胁检测工具
  
## 功能
- 📡 ARP 扫描,发现您网络中的所有活动设备
- 🏷️ 使用 IEEE OUI 数据库进行供应商查询
- 🆕 新增/移除设备检测(基准对比)
- 🚨 ARP 欺骗检测(重复 MAC + 网关 MAC 更改)
- 💾 将结果导出为 JSON
## 安装说明
```
git clone https://github.com/LUCIFERLAMO/network_scanner.git
cd network_scanner
pip install scapy rich requests
```
## 使用方法
```
sudo python3 network_scanner.py # auto-detects your subnet
sudo python3 network_scanner.py -i 192.168.1.0/24 # scan specific subnet
sudo python3 network_scanner.py -o results.json # save output
sudo python3 network_scanner.py -c # detect new/removed devices
sudo python3 network_scanner.py -s # ARP spoof detection
sudo python3 network_scanner.py -i 192.168.1.0/24 -o results.json -c -s # all flags
```
## 工作原理
| 功能 | 作用 |
|---|---|
| `scan()` | 发送广播 ARP 请求并收集响应 |
| `get_default_network()` | 如果未提供 IP,则自动检测您的子网 |
| `Download_OUI()` / `load_OUI()` | 下载并缓存 IEEE 供应商数据库 |
| `call_OUI()` | 通过 MAC 地址的前 3 个字节查询制造商 |
| `print_details()` | 以格式化表格形式打印结果 |
| `store_output()` | 将 IP、MAC、供应商保存到 JSON 文件 |
| `save_baseline()` / `detect_changes()` | 为网络拍摄快照,并标记新增或丢失的设备 |
| `detect_arp_spoofing()` | 标记重复的 MAC 和网关 MAC 更改 |
## 许可证
该项目采用 [MIT 许可证](LICENSE) 授权。
标签:ARP, Python, Scapy, 云存储安全, 字符串匹配, 插件系统, 无后门, 网络安全, 网络扫描, 逆向工具, 隐私保护