pcwilliams/home
GitHub: pcwilliams/home
一款 iPhone 上的家庭网络可视化扫描器,结合 Bonjour 服务发现与 TCP 端口扫描,以径向地图形式呈现网络设备。
Stars: 0 | Forks: 0
# HomeNet




一款用于 iPhone 的可视化家庭网络扫描器。使用 Bonjour/mDNS 和 TCP 端口扫描发现 Wi-Fi 上的设备,并将其显示在交互式径向地图上。

## 功能
- **径向网络地图** — 路由器位于中心,设备按类别排列在同心圆环中,并通过彩色线条连接
- **双指缩放和拖动** — 使用标准 iOS 手势探索地图;重置按钮可恢复原位
- **Bonjour 服务发现** — 扫描 24 种 mDNS 服务类型,包括 AirPlay、HomeKit、Chromecast、Sonos、Spotify Connect 等
- **子网端口扫描** — 探测整个 /24 网络,以发现未广播 Bonjour 服务的设备
- **智能分类** — 将设备识别为手机、电脑、音箱、电视、打印机、智能家居设备、游戏机、NAS 盒子等
- **渐进式更新** — 设备在被发现和识别时会实时出现和更新
- **深度设备探测** — 初始扫描后,探测 HTTP 头、SSH Banner、UPnP 描述、AirPlay `/info`、Chromecast `/setup/eureka_info`,以及用于推断有线/WiFi 连接的 TCP 延迟
- **智能显示名称** — 设备显示从 AirPlay、UPnP、Chromecast 或 Bonjour 服务发现的友好名称,回退顺序为主机名然后是 IP
- **Bonjour TXT 记录** — 从 mDNS 元数据中提取型号标识符、OS 版本、设备 ID,以实现精确的 Apple 设备分类
- **设备详情视图** — 点击任意设备查看其 IP、主机名、开放端口、发现的服务和探测结果
- **列表视图** — 按设备类别组织的替代分组视图
- **深色模式** — 为深色背景设计,带有分类彩色图标和连接线
## 设备类别
| 类别 | 图标 | 识别依据 |
|----------|------|---------------|
| Router | wifi.router | 网关 IP 地址 |
| Phone | smartphone | 端口 62078,主机名模式 |
| Apple | apple.logo | Companion Link, Device Info 服务 |
| Computer | laptopcomputer | SSH, Screen Sharing, 主机名 |
| TV & Media | tv | Chromecast, AirPlay, GameStream |
| Speaker | hifispeaker | Sonos, Spotify Connect, AirPlay Audio |
| Printer | printer | IPP, 打印机/扫描仪服务 |
| Smart Home | lightbulb | HomeKit, HAP, Thread/Matter |
| Gaming | gamecontroller | PlayStation/Xbox/Nintendo 主机名 |
| Storage | externaldrive | NAS 主机名,SMB + UPnP 端口 |
## 开始使用
1. 在 Xcode 16+ 中打开 `HomeNet.xcodeproj`
2. 选择你的 iPhone 作为运行目标
3. 构建并运行 (Cmd+R)
4. 在提示时授予本地网络访问权限
5. 扫描会自动开始
**注意:** 此应用必须在真机 iPhone 上测试 —— 模拟器无法访问真实的本地网络。
## 从命令行构建
```
xcodebuild -project HomeNet.xcodeproj -scheme HomeNet \
-destination 'generic/platform=iOS' build \
CODE_SIGNING_ALLOWED=NO
```
## 运行测试
```
xcodebuild -project HomeNet.xcodeproj -scheme HomeNet \
-destination 'platform=iOS Simulator,name=iPhone 16' test \
CODE_SIGNING_ALLOWED=NO
```
119 个测试,涵盖设备分类、Bonjour 名称匹配、模型行为、渐进式更新模拟、深度探测和 TXT 记录分类。
## 项目结构
```
HomeNet/
├── HomeNet.xcodeproj/
├── CLAUDE.md
├── README.md
├── architecture.html
├── tutorial.html
└── HomeNet/
├── App/
│ ├── HomeNetApp.swift
│ └── ContentView.swift
├── Models/
│ └── NetworkDevice.swift
├── Views/
│ ├── NetworkMapView.swift
│ ├── DeviceListView.swift
│ └── DeviceDetailView.swift
├── Services/
│ ├── NetworkScanner.swift
│ ├── BonjourBrowser.swift
│ ├── DeviceClassifier.swift
│ └── DeviceProber.swift
├── ViewModels/
│ └── NetworkViewModel.swift
└── Assets.xcassets/
```
## 文档
- [架构图](https://pcwilliams.design/dev/home/architecture.html) — 扫描流水线和数据流的交互式 Mermaid.js 图表
- [构建教程](https://pcwilliams.design/dev/home/tutorial.html) — 关于此应用如何使用 Claude Code 构建的分步叙述
## 构建方式
完全通过与 Claude Code 对话构建。未手动编写任何代码。
| 指标 | 值 |
|--------|-------|
| Source files | 12 |
| Test files | 4 |
| Tests | 119 |
| External dependencies | 0 |
| Frameworks | SwiftUI, Network |
## 许可证
个人使用
标签:Bonjour, iOS应用, iPhone工具, IT工具, Maven构建, mDNS, Swift, SwiftUI, TCP扫描, UPnP, URL短链接分析, 家庭网络, 密码管理, 局域网, 插件系统, 数据统计, 服务探测, 流量捕获, 端口扫描, 网络发现, 网络安全, 网络扫描器, 网络拓扑, 设备识别, 隐私保护