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, 云存储安全, 域名侦查, 插件系统, 无后门, 网络扫描, 虚拟驱动器, 运维工具, 逆向工具