局域网扫描器
一个使用Tkinter的图形界面,用于扫描本地IPv4网络(ARP + nmap探测),显示设备,允许运行全端口扫描和导出结果。
快速概览
- ARP扫描发现局域网设备。
- 改进的nmap探测,获取主机名、厂商、开放端口、操作系统猜测和延迟。
- 全端口按钮对选定设备运行密集的nmap扫描。
- 基于检测到的开放端口的智能风险评分(低/中/高/严重)。
- 实时仪表板统计(总设备数、开放端口主机数、高风险主机数、平均延迟)。
- 实时筛选/搜索和可排序的表列,以加快分类。
- 重新扫描选定设备、复制IP和网络洞察(本地/公网IP + 平台详情)。
- 导出结果为CSV或JSON。
依赖要求
- Windows 10/11(已测试)
- Python 3.9+(推荐3.10+)
- 安装Nmap并加入PATH(从 https://nmap.org/ 下载)
- 安装Npcap(Windows上scapy需要)——如果提示,请选择“WinPcap兼容模式”
- 以管理员权限运行脚本以获得完整功能(ARP、原始套接字、部分nmap特性)
Python包(通过requirements.txt安装):
- scapy
- python-nmap
- tqdm
- requests
安装
- 打开PowerShell(建议以管理员身份运行以便操作)
- 创建并激活虚拟环境(可选但推荐)
- python -m venv .venv
- ..venv\Scripts\Activate.ps1
- 安装包
- pip install -r requirements.txt
确保安装了nmap.exe并且可以在PATH中找到(运行 nmap --version 验证)。
运行图形界面
推荐(Windows):
- 右键单击Visual Studio Code并选择“以管理员身份运行”,打开项目,按F5调试或运行。
- 或者打开管理员PowerShell并运行:
注意事项:
- 程序启动时会请求提升权限(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}/app.py",
"console": "integratedTerminal",
"args": []
}
]
}
重要提示:在Windows上,更简单的方法是先以管理员身份运行VS Code本身(右键 → 以管理员身份运行),然后再启动调试配置。
使用图形界面
- 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扫描仅适用于本地以太网/局域网段。
- 全端口扫描和操作系统检测可能需要管理员权限,每个主机可能需要几分钟。
- 连字符/通配符扩展包含限制,以避免意外的大规模扫描(防御性)。
- Nmap必须单独安装——python-nmap只是一个包装器。
故障排除
- 如果出现“接受管理员”UAC对话框但GUI未打开:
- 确保VS Code以管理员身份启动(首选),或在管理员PowerShell中运行脚本。
- 验证在同一环境中
nmap --version 可以正常工作。
- 如果使用调试器,请从提权的VS Code实例运行调试会话。
- 如果scapy在Windows上失败:验证是否安装了Npcap,并且您的虚拟环境使用相同的Python解释器。
安全与法律
仅扫描您拥有或明确授权测试的网络和设备。未经授权的扫描可能违法且具有破坏性。
路线图
扫描器改进
界面
安全功能
平台支持