Fa1dz/Internet-Scanner
GitHub: Fa1dz/Internet-Scanner
基于 Tkinter 的局域网扫描 GUI 工具,通过 ARP 发现与 nmap 探测实现设备识别、端口扫描、风险评分与结果导出。
Stars: 3 | Forks: 0
# 局域网扫描器
一个基于 Tkinter GUI 的工具,可扫描本地 IPv4 网络(ARP + nmap 探测),显示设备信息,允许运行全端口扫描并导出结果。
## 快速概览
- ARP 扫描以发现局域网 (LAN) 上的设备。
- 改进的 nmap 探测,用于获取主机名、供应商、开放端口、操作系统推测和延迟。
- “全端口扫描”按钮可对选定的设备运行密集型 nmap 扫描。
- 基于检测到的开放端口的智能风险评分(低/中/高/严重)。
- 实时仪表盘统计(设备总数、开放端口主机数、高风险主机数、平均延迟)。
- 实时过滤/搜索和可排序的表格列,以加快分流速度。
- 重新扫描选中项、复制 IP 以及网络洞察(本地/公共 IP + 平台详情)。
- 将结果导出为 CSV 或 JSON。
## 要求
- Windows 10/11(已测试)
- Python 3.9+(推荐 3.10+)
- 已安装 Nmap 并添加到 PATH(从 https://nmap.org/ 下载)
- 已安装 Npcap(Windows 上 scapy 的必需项)—— 如果提示,请选择“WinPcap-compatible mode”
- 使用管理员权限运行脚本以获得完整功能(ARP、原始套接字以及某些 nmap 功能)
Python 包(通过 requirements.txt 安装):
- scapy
- python-nmap
- tqdm
- requests
## 安装
1. 打开 PowerShell(推荐:为方便起见,请以管理员身份运行)
2. 创建并激活虚拟环境(可选但推荐)
- python -m venv .venv
- .\.venv\Scripts\Activate.ps1
3. 安装依赖包
- pip install -r requirements.txt
确保已安装 nmap.exe 并且可在 PATH 中使用(运行 `nmap --version` 进行验证)。
## 运行 GUI
推荐(Windows):
- 右键点击 Visual Studio Code 并选择“以管理员身份运行”,打开项目,按 F5 进行调试或运行。
- 或者打开管理员 PowerShell 并运行:
- python "c:\Users\...Internet_Scanner.py"
注意:
- 程序启动时会请求提权(ShellExecute)。如果您从 VS Code 运行,请以管理员身份启动 VS Code,以便让集成调试器以正确的权限启动。
- 如果在接受 UAC 提示后 GUI 仍未出现,请直接从提权的 PowerShell 中运行脚本以进行验证。
## VS Code 配置
如果您需要调试配置,请添加 `.vscode/launch.json`(示例):
```
{
"version": "0.2.0",
"configurations": [
{
"name": "Network Scanner (Admin)",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/test.py",
"console": "integratedTerminal",
"args": ["--run-as-admin"]
}
]
}
```
重要提示:在 Windows 上,在启动调试配置之前,直接以管理员身份运行 VS Code 本身(右键点击 → 以管理员身份运行)会更简单。
## 使用 GUI
- IP 范围输入支持:
- CIDR:`192.168.1.0/24`
- 单个 IP:`192.168.1.10`
- 连字符范围:`192.168.1.1-254` 或 `192.168.1.10-192.168.1.20`
- 通配符:`192.168.1.*`
- 逗号列表:`192.168.1.1,192.168.1.5,192.168.1.100`
- 按钮:
- 开始扫描 — ARP 发现 + 轻量探测
- 全端口扫描 — 选择一行,点击以对该 IP 运行密集型 nmap 扫描
- 重新扫描选中项 — 仅刷新当前选中主机的详情
- 复制 IP — 将选中的主机 IP 复制到剪贴板
- 网络洞察 — 在日志面板中打印本地/公共网络元数据
- 停止 — 请求停止扫描
- 导出 CSV / 保存 JSON — 保存收集到的设备信息
- 退出 — 关闭应用
- 实时过滤设备(按 IP、主机名、供应商、操作系统或风险进行搜索),并可选择仅显示有开放端口的主机。
- 点击列标题以对行进行排序。
- 点击设备行将在下方面板显示用户友好的摘要以及原始结构化数据。如果日志行中存在 IP,您可以点击日志中的行以自动选中对应的设备。
## 行为与限制
- ARP 扫描仅在本地以太网/LAN 网段上有效。
- 全端口扫描和操作系统检测可能需要管理员权限,并且每个主机可能需要几分钟的时间。
- 连字符/通配符扩展包含限制,以避免意外进行大规模扫描(防御性措施)。
- Nmap 必须单独安装 —— python-nmap 只是一个封装库。
## 故障排除
- 如果出现了“接受管理员权限”的 UAC 对话框,但没有打开 GUI:
- 确保 VS Code 是以管理员身份启动的(首选),或者在管理员 PowerShell 中运行脚本。
- 验证在同一环境中 `nmap --version` 是否有效。
- 如果使用调试器,请从提权的 VS Code 实例中运行调试会话。
- 如果 scapy 在 Windows 上失败:验证 Npcap 是否安装,并且您的虚拟环境是否使用相同的 Python 解释器。
## 安全与法律
仅扫描您拥有或获得明确测试许可的网络和设备。未经授权的扫描可能是非法的,并会造成破坏。
## 联系 / 反馈
在 VS Code 中打开脚本并根据需要进行修改。如需功能请求或报告问题,请在 `Internet_Scanner.py` 顶部添加备注。
标签:ARP, CTI, GUI, Nmap, Python, Tkinter, 云存储安全, 域名侦查, 插件系统, 无后门, 网络扫描, 虚拟驱动器, 运维工具, 逆向工具