Whosthere 守护进程模式详解:如何搭建局域网设备监控 HTTP API 并集成其他工具
Whosthere 守护进程模式详解如何搭建局域网设备监控 HTTP API 并集成其他工具【免费下载链接】whosthereLocal Area Network discovery tool with an interactive Terminal User Interface (TUI) written in Go. Discover, explore, and understand your LAN in an intuitive way. Knock Knock.. whos there? 项目地址: https://gitcode.com/gh_mirrors/wh/whosthereWhosthere 是一款用 Go 编写的局域网设备发现工具除了直观的 TUI 界面外它的**守护进程模式daemon mode**可以让 Whosthere 在后台持续扫描局域网并暴露一个简单的HTTP API方便你把局域网设备监控数据接入 Grafana、Home Assistant、Shell 脚本或自己的自动化系统中。这篇文章带你从零搭建这套设备监控 HTTP API并给出实用的集成思路。什么是 Whosthere 守护进程模式Whosthere 提供三种运行方式模式命令适用场景TUI 交互模式whosthere手动浏览局域网设备单次扫描 CLIwhosthere scan -t 5一次性获取设备列表守护进程模式whosthere daemon后台持续监控 HTTP API 集成守护进程模式的工作流程很简单启动后Whosthere 会并行运行 mDNS、SSDP 扫描器和 ARP 缓存扫描按配置周期默认 20 秒循环扫描子网把发现的设备合并进内存状态同时启动一个 HTTP 服务供外部查询。相关实现位于 internal/cmd/daemon.go扫描引擎的组装逻辑见 internal/core/engine_builder.go。 与 CLI 单次扫描不同守护进程会把多轮扫描结果累积合并同一 IP 的数据按 IP 地址归并记录首次/最近发现时间因此能提供更稳定的设备全景视图。启动守护进程一条命令搭建设备监控 HTTP API基本启动步骤whosthere daemon --port8080启动后的行为来自 internal/cmd/daemon.go未指定--port时默认使用8080端口HTTP 服务监听所有网卡0.0.0.0:端口发现引擎开始按scan_interval循环扫描事件驱动地更新设备状态。后台常驻运行在服务器上建议以后台方式运行并把日志输出到文件nohup whosthere daemon --port8080 /var/log/whosthere-daemon.log 21 非 TUI 模式下日志同时写入控制台和状态目录Linux/macOS 为~/.local/state/whosthere/app.log排查问题时可随时查阅。三个核心 API 端点与调用示例守护进程模式暴露的 HTTP API 非常精简一共 3 个端点方法端点说明GET/devices获取所有已发现的局域网设备列表JSON 数组GET/device/{ip}获取指定 IP 设备的详情JSON 对象GET/health健康检查返回OK1. 获取全部设备列表curl http://localhost:8080/devices返回按 IP 排序的 JSON 数组每个设备包含这些字段定义见 pkg/discovery/device.go字段含义ip设备 IPv4 地址macMAC 地址冒号分隔格式displayNamemDNS/SSDP 发现的可读名称manufacturer由 MAC 地址 OUI 前缀解析出的厂商sources数据来源如arp-cache、mdns、ssdpfirstSeen/lastSeen首次/最近发现时间extraData协议元数据如 SSDP 设备类型2. 查询单个设备详情curl http://localhost:8080/device/192.168.1.100IP 不存在时返回 404IP 格式非法返回 400。这个端点非常适合在脚本中做某台设备是否还在线的判断。3. 健康检查curl http://localhost:8080/health # 输出: OK适合接入监控系统的存活探测比如配合WHOSTHERE_LOGdebug环境变量调高日志级别时也能看到每次请求记录。调整扫描频率修改 YAML 配置文件守护进程完全复用 TUI 的配置体系配置文件默认位于~/.config/whosthere/config.yaml查找顺序和优先级见 README.md。对设备监控最相关的几项# 发现扫描频率默认 20s调小可更快发现新设备 scan_interval: 20s # 单轮扫描超时建议小于扫描间隔 scan_timeout: 10s scanners: mdns: { enabled: true } # mDNS 广播发现 ssdp: { enabled: true } # SSDP 设备发现电视、NAS 等 arp: { enabled: true } # ARP 缓存扫描 sweeper: enabled: true # 子网 sweep触发 ARP 解析以发现沉默设备 interval: 5m # 每隔 5 分钟做一次全子网 sweep timeout: 20s如果只想盯着特定网段可以用target_subnets指定多个 CIDR避免无谓流量也可以通过环境变量WHOSTHERE__SCAN_INTERVAL30s这类方式在不改文件的情况下覆盖任意配置项。把设备数据集成到其他工具有了 HTTP API集成就变得非常直接 方案一Shell 脚本 cron 定时巡检curl -s http://localhost:8080/devices | jq -r .[] | \(.ip) \(.manufacturer) \(.lastSeen)配合 cron 每 5 分钟执行一次与上次结果做 diff就能实现新设备上线告警。 方案二接入 Home Assistant在 HA 中通过rest传感器周期性请求/devices端点即可在家庭仪表盘上展示局域网设备数量与在线状态。 方案三喂给 Grafana / InfluxDB写一个轻量采集任务定时拉取/devices并写入时序库再绘制设备在线数、firstSeen新增设备趋势等面板。/health端点可以直接作为采集任务的存活探测。⚙️ 方案四作为其他自动化工具的数据源任何支持 HTTP 请求的工具n8n、node-red、Ansibleuri模块等都可以把http://主机:8080/devices当作局域网设备清单的数据源实现按厂商、按网段过滤后触发后续动作。使用注意事项仅限授权网络Whosthere 只应在自己拥有权限的网络如家庭网络上使用扫描第三方网络可能违反法律。数据为内存态设备列表保存在守护进程内存中进程重启后从零开始积累别名等元数据有本地 bbolt 缓存见 internal/core/devicemeta/。端口安全HTTP API 监听所有网卡且无鉴权公网主机上请自行用防火墙限制 8080 端口或仅在内网使用。大网段谨慎对大于 /16 的网段启用scan_large_subnets会产生 65535 IP 的流量家庭网络一般无需开启。总结Whosthere 守护进程模式用一个极简的设计一个命令 3 个端点解决了如何把局域网设备监控数据暴露给其他工具的问题whosthere daemon --port8080启动后台持续扫描通过/devices、/device/{ip}、/health三个端点以 JSON 获取设备数据用 YAML 配置调整扫描节奏与扫描器组合自由集成到脚本、cron、Home Assistant、Grafana 等生态中。从手动敲门问是谁到 7×24 小时自动化设备监控只需一条命令的距离。【免费下载链接】whosthereLocal Area Network discovery tool with an interactive Terminal User Interface (TUI) written in Go. Discover, explore, and understand your LAN in an intuitive way. Knock Knock.. whos there? 项目地址: https://gitcode.com/gh_mirrors/wh/whosthere创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

高性价比的代理记账公司有哪些?靠谱商家测评排名与选择指南

高性价比的代理记账公司有哪些?靠谱商家测评排名与选择指南

高性价比的代理记账公司有哪些?靠谱商家怎么选?这是很多中小微企业主在创业初期反复搜索的问题。市面上代理记账机构数量众多,报价从每月两三百元到上千元不等,服务水平参差不齐,选错了不仅浪费钱,还可能因为账务混乱、逾期申报…

2026/10/4 8:45:54 阅读更多 →
GitHub Trending使用指南:从刷榜到高效筛选开源项目

GitHub Trending使用指南:从刷榜到高效筛选开源项目

打开 GitHub Trending 日榜已经成了我每天早上的固定动作,比刷朋友圈还准时。2026年9月29号这份榜单,说实话有点东西——AI工具依然是绝对主力,但也有几个跟「生活效率」和「开发者基础设施」相关的项目在悄悄爬升。这篇东西不想写成那种干巴…

2026/10/4 8:45:54 阅读更多 →
VS2019+Qt+OpenCV图像显示与处理:环境配置与避坑指南

VS2019+Qt+OpenCV图像显示与处理:环境配置与避坑指南

简介:在VS2019集成环境下,通过Qt与OpenCV结合完成图像显示与处理的完整示例工程,面向计算机视觉初学者及需要快速搭建GUI图像应用的开发者。工程覆盖OpenCV环境配置、Mat与QImage互转、灰度转换、均值滤波等典型操作,并附带Qt Wid…

2026/10/4 8:45:54 阅读更多 →

最新新闻

AI 安全本质是工程问题:智能体技术栈五层防护实战

AI 安全本质是工程问题:智能体技术栈五层防护实战

1. 为什么说 AI 安全本质上是工程问题,而不是模型问题很多人第一次接触 AI 安全,脑子里浮现的是对齐研究、红队测试、内容过滤这些偏研究向的东西。但真正把智能体推到生产环境的人会告诉你,绝大多数安全事故根本不是模型"变坏了"&…

2026/10/4 9:26:23 阅读更多 →
MaterialKit核心秘密:MKLayer涟漪效果实现原理深度剖析(CAShapeLayer+Core Animation全链路拆解)

MaterialKit核心秘密:MKLayer涟漪效果实现原理深度剖析(CAShapeLayer+Core Animation全链路拆解)

MaterialKit核心秘密:MKLayer涟漪效果实现原理深度剖析(CAShapeLayerCore Animation全链路拆解) 【免费下载链接】MaterialKit Material design components for iOS written in Swift 项目地址: https://gitcode.com/gh_mirrors/ma/Materia…

2026/10/4 9:26:23 阅读更多 →
如何配置UniMate的Blender环境?bpy 4.0.0版本选择的完整解读

如何配置UniMate的Blender环境?bpy 4.0.0版本选择的完整解读

如何配置UniMate的Blender环境?bpy 4.0.0版本选择的完整解读 【免费下载链接】UniMate [SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons 项目地址: https://gitcode.com/GitHub_Trending/un/UniMate UniMate(One …

2026/10/4 9:26:23 阅读更多 →
QwenPaw 安装配置与实战:从 API Key 到日常编码工作流

QwenPaw 安装配置与实战:从 API Key 到日常编码工作流

QwenPaw 这个工具,最近问的人确实不少。大家拿到手的第一反应往往是“装一下试试”,结果装完之后才发现,真正卡住人的不是安装命令本身,而是 API Key 怎么配、模型怎么选、以及装上之后到底能让它帮自己干哪些活。我前阵子刚在 Ub…

2026/10/4 9:26:22 阅读更多 →
做简历的五个途径,你用的是第几种?——从Word手敲到AI生成,五种主流方式的真实体验对比

做简历的五个途径,你用的是第几种?——从Word手敲到AI生成,五种主流方式的真实体验对比

做简历的五个途径,你用的是第几种?——从Word手敲到AI生成,五种主流方式的真实体验对比 写简历这件事,工具选择的差异比大多数人以为的大得多。同样是"做一份简历",有人打开空白Word从零开始排版&#xff0c…

2026/10/4 9:26:22 阅读更多 →
影刀RPA新手教程:三种等待指令的区别与超时设置实战

影刀RPA新手教程:三种等待指令的区别与超时设置实战

影刀RPA新手教程:三种等待指令的区别与超时设置实战 做网页自动化最崩溃的瞬间,不是报错,而是流程时好时坏:昨天跑一遍全通过,今天同样的流程跑到第三步就找不到控件。我非技术出身,用影刀RPA实操两年多&am…

2026/10/4 9:25:22 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →