扫描本地网络并在 ~/.config/netmap/devices.json 维护持久的设备数据库。
依赖
- 必须安装
nmap:brew install nmap
- 脚本:
scripts/netmap.py
命令
# 发现网络上的所有设备(快速,约 30-60 秒)
python3 scripts/netmap.py scan# 深度扫描——还对每个设备进行端口扫描以识别类型(较慢,约 2-3 分钟)
python3 scripts/netmap.py scan --deep
# 覆盖子网(默认自动检测)
python3 scripts/netmap.py scan --subnet 10.0.0.0/24
# 列出所有已知设备
python3 scripts/netmap.py list
python3 scripts/netmap.py list --times # 包含首次/最后在线时间
# 按 IP、主机名、MAC、供应商或设备类型查找设备
python3 scripts/netmap.py find printer
python3 scripts/netmap.py find 192.168.1.12
python3 scripts/netmap.py find Canon
# 使用友好名称标记设备
python3 scripts/netmap.py label 192.168.1.12 "Canon Printer"
python3 scripts/netmap.py label AA:BB:CC:DD:EE:FF "Kevin's iPhone"
# 显示最近 N 分钟内首次出现的设备
python3 scripts/netmap.py new --minutes 30
# 导出设备数据库为 JSON
python3 scripts/netmap.py export
# 持续监视模式(默认每 2 分钟扫描一次)
python3 scripts/netmap.py watch
python3 scripts/netmap.py watch --interval 60
注意事项
- MAC 地址和供应商信息需要使用
sudo 运行(否则显示为空)
- 深度扫描添加基于端口的设备指纹识别:识别打印机、NAS、SSH 服务器、Apple 设备等
- 设备数据库在扫描之间持久化——标签在重新扫描后保留
- 子网从机器的默认接口自动检测
- 首次运行
scan --deep 填充设备类型,然后使用 scan 进行快速刷新
Scans the local network and maintains a persistent device database at ~/.config/netmap/devices.json.
Requirements
nmap must be installed: brew install nmap
- Script:
scripts/netmap.py
Commands
# Discover all devices on the network (fast, ~30-60s)
python3 scripts/netmap.py scan# Deep scan — also port-scans each device to identify type (slower, ~2-3min)
python3 scripts/netmap.py scan --deep
# Override subnet (auto-detected by default)
python3 scripts/netmap.py scan --subnet 10.0.0.0/24
# List all known devices
python3 scripts/netmap.py list
python3 scripts/netmap.py list --times # include first/last seen
# Find a device by IP, hostname, MAC, vendor, or device type
python3 scripts/netmap.py find printer
python3 scripts/netmap.py find 192.168.1.12
python3 scripts/netmap.py find Canon
# Label a device with a friendly name
python3 scripts/netmap.py label 192.168.1.12 "Canon Printer"
python3 scripts/netmap.py label AA:BB:CC:DD:EE:FF "Kevin's iPhone"
# Show devices first seen in the last N minutes
python3 scripts/netmap.py new --minutes 30
# Export device database as JSON
python3 scripts/netmap.py export
# Continuous watch mode (scans every 2min by default)
python3 scripts/netmap.py watch
python3 scripts/netmap.py watch --interval 60
Notes
- MAC addresses and vendor info require running with
sudo (or they appear blank without it)
- Deep scan adds port-based device fingerprinting: identifies printers, NAS, SSH servers, Apple devices, etc.
- Device database persists across scans — labels survive rescans
- Subnet is auto-detected from the machine's default interface
- Run
scan --deep first time to populate device types, then scan for fast refreshes