Network Scanner
扫描当前局域网内的活跃设备及其开放端口,返回格式化表格。
用途:仅用于管理用户自有网络,发现和识别局域网内的设备。
执行方式
Linux
python3 skills/network-device-scanner/scripts/scan.py
macOS
python3 skills/network-device-scanner/scripts/scan.py
Windows (PowerShell)
powershell -ExecutionPolicy Bypass -File skills/network-device-scanner/scripts/scan.ps1
环境要求
- Python 3.7+
- 可选:
arp命令 (Linux/macOS),fping或nmap(更快发现)
输出格式
严格按照以下格式返回:
| IP 地址 | MAC | 开放端口 | 设备类型 |
|---|---|---|---|
| 172.16.10.1 | e4-68-a3-95-f9-16 | 21, 23, 80 | 小米路由器 (Telnet+FTP) |
| 172.16.10.24 | 94-e6-f7-be-c8-0a | 22, 80, 443, 3389, 8080, 8443, 9000 | Linux服务器 (SSH/RDP/Web) |
| 172.16.10.196 | 40-31-3c-db-06-7d | 80, 8080, 8443 | 小米设备 (智能电视/IoT) |
| 172.16.10.219 | 30-9c-23-07-1b-ea | 135, 139, 445 | Windows电脑 (SMB/远程管理) |
功能说明
- 设备发现 (按优先级):
- 读取 /proc/net/arp (Linux)
- 使用 arp 命令
- Ping 扫描 (fping > nmap > basic ping)
- 使用TCP端口扫描验证设备活跃状态
- 扫描常用端口: 21, 22, 23, 53, 80, 135, 139, 443, 445, 554, 8000, 8080, 8443, 9000, 37777
- 根据MAC前缀和开放端口自动识别设备类型
设备类型识别规则
- MAC前缀
e4-68-a3→ 小米路由器 - MAC前缀
40-31-3c→ 小米设备 - 开放 135,139,445 端口 → Windows电脑
- 开放 22,80 端口 → Linux服务器
- 开放 80/8080 端口 → Web服务器/设备