pcwilliams/home

GitHub: pcwilliams/home

一款 iPhone 上的家庭网络可视化扫描器,结合 Bonjour 服务发现与 TCP 端口扫描,以径向地图形式呈现网络设备。

Stars: 0 | Forks: 0

# HomeNet ![Platform](https://img.shields.io/badge/platform-iOS%2017%2B-blue) ![Swift](https://img.shields.io/badge/Swift-5.0-orange) ![UI](https://img.shields.io/badge/UI-SwiftUI-purple) ![Dependencies](https://img.shields.io/badge/dependencies-none-brightgreen) 一款用于 iPhone 的可视化家庭网络扫描器。使用 Bonjour/mDNS 和 TCP 端口扫描发现 Wi-Fi 上的设备,并将其显示在交互式径向地图上。 ![HomeNet running on iPhone 16 Pro](https://pcwilliams.design/dev/home/home-screenshot.png) ## 功能 - **径向网络地图** — 路由器位于中心,设备按类别排列在同心圆环中,并通过彩色线条连接 - **双指缩放和拖动** — 使用标准 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短链接分析, 家庭网络, 密码管理, 局域网, 插件系统, 数据统计, 服务探测, 流量捕获, 端口扫描, 网络发现, 网络安全, 网络扫描器, 网络拓扑, 设备识别, 隐私保护