核心用法
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 与厂商信息缺失,影响审计准确性