Haywinkler05/Python-Network-Scanner
GitHub: Haywinkler05/Python-Network-Scanner
一个用于扫描和监控家庭网络设备的Python工具,帮助用户发现并管理网络连接。
Stars: 0 | Forks: 0
# 🔍 Python 网络扫描器
一款使用 Python 和 Scapy 构建的轻量级家庭网络监控工具。通过 ARP 请求扫描本地网络,发现连接的设备,将其记录到 CSV 文件中,并在检测到新的未知设备时发出警报。
## 📋 功能特性
- 通过 ARP 扫描发现网络中所有活动设备
- 获取每台设备的 IP 地址、MAC 地址和主机名
- 将结果(带时间戳)保存到 CSV 文件 (`myNetwork.csv`)
- 每次扫描时更新已返回设备的 `Last Seen`(最后发现时间)
- 在控制台中检测到新的未知设备时发出警报
## 🛠️ 系统要求
- Python 3.x
- Scapy
- Npcap (仅 Windows 系统需要)
### 安装依赖
```
pip install scapy
```
## 🚀 使用方法
1. 克隆代码仓库
```
git clone https://github.com/Haywinkler05/Python-Network-Scanner.git
cd Python-Network-Scanner
```
2. 以**管理员身份**运行脚本(原始数据包发送需要)
```
python main.py
```
3. 在提示时输入您的本地 IP 范围
```
在此输入 IP 范围: xxx.xxx.x.0/24
```
4. 扫描器将:
- 向该范围内的所有设备发送 ARP 请求
- 在控制台中显示发现的设备
- 保存/更新 `myNetwork.csv` 中的结果
- 如果发现新的未知设备,则发出警报
## 📁 项目结构
```
Python-Network-Scanner/
├── main.py # Entry point
├── arp.py # ARP scanning and device extraction
├── store.py # CSV read/write and device comparison
└── hostnames.py # Hostname resolution
```
## ⚠️ 免责声明
此工具仅适用于您**自己的网络**。扫描您不拥有或未获得明确测试许可的网络,在美国《计算机欺诈与滥用法案》(CFAA) 及类似法律下可能属违法行为。
## 未来计划
- [ ] 计划任务自动扫描
- [ ] MAC 供应商查询(识别设备制造商)
- [ ] 新设备的电子邮件/短信警报
- [ ] 连接设备的可视化仪表盘
- [ ] 集成 Nmap 端口扫描
## 学习收获
- ARP 协议及设备在局域网上的通信原理
- 使用 Scapy 进行 Python 网络编程
- CSV 文件处理与数据持久化
- 使用哈希表进行设备比较的大 O 优化
- 使用 Wireshark 和 tcpdump 进行数据包捕获与分析
- 网络安全概念,包括网络分段和设备指纹识别
标签:ARP扫描, CSV日志, Python, Scapy, 主机监控, 协议分析, 家庭网络, 插件系统, 新设备警报, 无后门, 本地网络, 权限提升, 网络安全, 网络扫描工具, 设备发现, 设备管理, 轻量级工具, 逆向工具, 隐私保护