bavlybbb12/Network-scanner-

GitHub: bavlybbb12/Network-scanner-

基于 Python、Scapy 和 Flask 构建的局域网设备发现与端口扫描工具,通过浏览器仪表板可视化展示本地网络中的活动主机及其开放端口信息。

Stars: 0 | Forks: 0

局域网与端口扫描仪表板 一个使用 Python、Scapy 和 Flask 构建的模块化、基于浏览器的网络发现工具。该应用程序会自动检测您的本地子网(即使在完全离线的情况下),通过第二层 ARP 广播扫描网络中的活动主机,查找硬件 MAC 厂商,探测第四层的常用通信端口,并在一个简洁的 Web 仪表板中将所有内容可视化。 ## 功能 - **动态子网自动检测**:即使您处于离线状态,也会自动发现您本地网卡的配置并填充目标范围(例如 `192.168.1.0/24`)。 - **第二层发现**:使用 Scapy 发送原始 ARP 请求,以实现快速、高精度的主机检测。 - **第四层端口扫描**:使用严格的连接超时探测活动设备的开放常用服务(HTTP、HTTPS、SSH、SMB 等),以防止脚本挂起。 - **跨平台权限守护**:在启动前,会在 Windows 或 Linux/macOS 上原生检测用户权限,如果缺少管理员/root 权限,则会警告用户。 - **模块化代码库**:在核心扫描器、通用工具和 Web 服务器模块之间实现了严格的关注点分离。 - **数据持久化**:自动将成功的扫描输出转储到一个干净的 JSON 日志文件(`network_devices.json`)中。 ## 文件架构 ```plaintext /Project_Folder │ ├── scanner.py # 核心引擎:构建数据包并探测 TCP 端口 ├── utils.py # 实用工具箱:握手、OS 权限检查、JSON 导出 ├── app.py # 交通指挥:协调后端函数与 Web 路由 │ └── templates/ └── index.html # 前端 UI:使用 Jinja2 循环和 Bootstrap 5 构建 ``` ## 环境要求与安装说明 ### 1. 系统依赖(数据包嗅探) 由于此应用程序会构建原始网络数据包,您的操作系统需要一个数据包捕获驱动程序: - **Windows**:下载并安装 Npcap。(请确保在安装过程中勾选“Install Npcap with winpcap compatibility mode”选项)。 - **Linux**:通常已预装。如果缺失,请运行 `sudo apt install libpcap-dev`。 - **macOS**:原生内置。 ### 2. Python 库 使用 pip 安装必要的 Python 包: ```bash pip install scapy mac-vendor-lookup flask ``` ## 运行应用程序 因为此脚本会处理底层网络数据包,所以您必须使用管理员/root 权限来执行它。 ### Windows 1. 以管理员身份打开命令提示符或 PowerShell。 2. 导航到您的项目目录并运行: ```dos python app.py ``` ### Linux / macOS 1. 打开您的终端。 2. 导航到您的项目目录并使用 sudo 执行: ```bash sudo python app.py ``` ## 访问仪表板 一旦终端显示 `[+] Admin privileges confirmed. Starting local server...`,请打开您的 Web 浏览器并访问: ```plaintext http://127.0.0.1:5000 ``` 您的本地网络范围将自动显示在输入框中作为建议。点击 **Scan Network**(扫描网络)即可刷新视图,显示活动的网络目标。
标签:Flask, Scapy, 云存储安全, 占用监测, 插件系统, 系统工具, 网络扫描, 资产管理, 逆向工具