chamalkalakshan/browser-based-lan-scanner

GitHub: chamalkalakshan/browser-based-lan-scanner

一个基于浏览器的局域网扫描工具,通过 Node.js 后端发现并分析本地网络中的设备、端口和服务信息。

Stars: 0 | Forks: 0

# 基于浏览器的局域网扫描器 一款用于发现和分析局域网设备的基于浏览器的工具。运行轻量级的 Node.js 服务器,即可从同一台机器上的任何浏览器访问扫描器。 ## 功能 - **主机发现** - 通过 ping 扫描(带 TCP 回退探测)查找活动主机 - **端口扫描** - 扫描每台已发现主机的 29 个常见服务端口 - **服务检测** - 从开放端口抓取 banner 以识别运行中的服务 - **主机名解析** - 为已发现的主机执行反向 DNS 查询 - **MAC 地址解析** - 查询 ARP 表 (Windows) - **设备类型检测** - 启发式分类(Windows PC、Linux 服务器、路由器、打印机等) - **实时更新** - 由 WebSocket 驱动的实时进度和结果 - **表格和网格视图** - 在详细表格和紧凑卡片网格之间切换 - **导出结果** - 将扫描结果下载为 JSON 或 CSV 格式 ## 截图 ![局域网扫描器 UI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/98377766ac195021.png) *扫描完成 - 在 1 分 10 秒内扫描了 254 个地址并发现 8 台主机,识别了开放端口和设备类型。* ## 环境要求 - Node.js 16 或更高版本 - Windows、macOS 或 Linux ## 安装 ``` git clone https://github.com/chamalkalakshan/browser-based-lan-scanner.git cd browser-based-lan-scanner npm install ``` ## 用法 ``` npm start ``` 然后在浏览器中打开 `http://localhost:3000`。 ### 运行扫描 1. 侧边栏会自动检测您的网络接口 2. 点击接口卡片以自动填充子网 3. 根据需要开启/关闭端口扫描 4. 点击 **开始扫描** 5. 在表格或网格视图中查看实时结果 6. 点击任意主机上的 **详情** 获取完整信息 7. 通过 JSON 或 CSV 按钮导出结果 ### 自定义端口 ``` PORT=8080 npm start ``` ## 项目结构 ``` browser-based-lan-scanner/ |-- server.js # Express + WebSocket server |-- scanner/ | |-- network-utils.js # Subnet and IP math | |-- host-discovery.js # Ping and TCP probe sweep | |-- port-scanner.js # TCP port scanning | `-- service-detector.js # Banner grabbing, hostname, MAC lookup `-- public/ |-- index.html |-- css/style.css `-- js/app.js ``` ## 工作原理 1. Node.js 服务器计算目标子网中的主机 IP 列表 2. 使用 `ping`(系统命令)分批(每批 20 个)探测主机,并在常见端口上进行 TCP 回退 3. 为每台发现的主机补充信息:通过 DNS 获取主机名,通过 ARP 获取 MAC 地址,通过 TCP connect 扫描获取开放端口 4. 结果通过 WebSocket 实时流式传输到浏览器 ## 注意事项 - 本工具旨在用于您拥有或已获授权扫描的网络 - 端口扫描和主机发现会产生网络流量,这些流量可能会被路由器和防火墙记录 - MAC 地址解析仅适用于同一子网段内的主机 ## 许可证 MIT
标签:Facebook API, GNU通用公共许可证, MITM代理, Node.js, 云存储安全, 局域网发现, 插件系统, 数据可视化, 数据统计, 端口扫描, 网络扫描, 自定义脚本, 调试辅助