Network Scanner

🔍 一键扫描局域网,智能识别设备指纹

network-security榜 #1

基于 nmap 的网络发现工具,自动扫描 IP、MAC、厂商信息,支持配置文件快速复用。

收藏
19.6k
安装
4.4k
版本
1.0.0
CLS 安全性认证2026-05-21
点击查看完整报告 >

使用说明

核心用法

Network Scanner 是一款基于 nmap 的网络设备发现工具,旨在帮助用户快速盘点局域网内的活跃设备。它通过调用系统级网络扫描引擎,获取 IP 地址、主机名(反向 DNS)、MAC 地址及厂商信息,支持命令行交互与 JSON 输出,便于集成到自动化工作流。

典型使用场景包括:执行 python3 scripts/scan.py 自动探测当前网段,或通过命名配置(如 scan.py home)快速调用预设的 CIDR 与 DNS 服务器。工具提供 Markdown 表格与结构化 JSON 两种输出格式,可直接用于文档生成或下游系统消费。

显著优点

  • 零配置启动:未指定目标时自动检测本地网络,降低上手门槛
  • 配置复用机制:通过 ~/.config/network-scanner/networks.json 管理多环境(家庭/办公/机房),避免重复输入 CIDR
  • 结构化输出:JSON 模式便于与 Home Assistant、监控系统等集成,实现设备在线状态自动化检测
  • 厂商识别:内置 MAC 地址厂商库,辅助快速识别设备类型(路由器、NAS、IoT 等)

潜在缺点与局限性

  • 权限依赖:MAC 地址获取需 root/sudo 权限,普通用户运行将丢失关键字段
  • 单线程扫描:大规模网段(如 /16)扫描耗时较长,无内置并发优化或进度反馈
  • DNS 依赖:反向解析质量取决于配置的 DNS 服务器,本地网络若无 PTR 记录则主机名为空
  • 无持续监控:单次扫描模式,需借助外部 cron/heartbeat 实现周期性盘点

适合人群

  • 家庭网络管理员与极客用户,需要定期生成设备清单
  • 小型企业 IT 人员,执行轻量级安全审计与资产盘点
  • 智能家居开发者,希望通过设备在线状态触发自动化规则

常规风险

  • 扫描行为被安全设备拦截:nmap 探测可能触发 IDS/IPS 告警,企业环境需提前报备
  • 信息泄露:扫描结果包含敏感网络拓扑,JSON/Markdown 输出文件需妥善保管
  • 配置权限风险--no-sudo 模式虽避免提权,但会导致 MAC 与厂商信息缺失,影响审计准确性

安全解读

Network Scanner 综合评估

核心用法

Network Scanner 是一款基于 Python 标准库开发的本地网络发现工具,通过调用系统 nmapdig 命令扫描指定 CIDR 网段,收集在线设备的 IP 地址、MAC 地址、主机名及厂商信息。支持两种使用模式:自动检测当前网络,或通过配置文件预设常用网段(如 home/office)实现一键扫描。输出格式涵盖 Markdown 表格与结构化 JSON,便于人工阅读或系统集成。

显著优点

  • 零第三方依赖:仅使用 Python 标准库(subprocess、json、xml.etree),供应链攻击面极小
  • 灵活的配置管理:支持 ~/.config/network-scanner/networks.json 持久化配置常用网络
  • 权限可控:sudo 提权为可选项(--no-sudo),兼顾功能完整性与安全偏好
  • 输出友好:默认 Markdown 表格适合文档生成,--json 模式便于自动化流水线集成
  • 本地化设计:无外发网络请求,DNS 查询仅限于反向解析本地 IP

潜在局限与风险

1. 命令注入隐患:使用 subprocess.run(shell=True) 拼接命令字符串,虽对 CIDR 有基础校验(含 / 或纯数字),但仍存在边界情况风险
2. sudo 依赖:获取 MAC 地址需 root 权限,部分企业环境可能受限

3. nmap 依赖:需手动安装系统级工具,跨平台部署时需注意包管理差异

4. 输入验证不足:CIDR 格式校验较为宽松,建议加强正则验证

适合人群

  • 家庭/中小企业网络管理员进行设备盘点
  • 安全运维人员执行内网资产发现与基线核查
  • 智能家居开发者集成设备在线状态检测
  • 需要生成网络拓扑文档的技术写作者

常规风险

  • RCE 风险:若 CIDR 参数被恶意构造,可能通过 shell=True 触发命令注入(当前版本风险等级:中等)
  • 权限提升:sudo 使用需用户明确授权,建议在受限环境中使用 --no-sudo 模式
  • 网络扰动:大规模扫描可能触发 IDS/IPS 告警,生产环境建议控制扫描频率与范围

改进建议

优先将 shell=True 重构为列表参数调用,并添加 CIDR 正则校验;其次可考虑引入 Python-nmap 库替代命令行调用,进一步降低注入风险。

Network Scanner 内容

scripts文件夹
手动下载zip · 5.0 kB
scan.pytext/plain
请选择文件