📦 开源项目地址:https://gitee.com/lv-shuliang/ipc-net-discovery
近年来,随着嵌入式设备、IPC(工业电脑)等在智能安防、自动化系统中的广泛部署,如何快速发现网络中的设备并统一管理,成为运维与开发中非常常见的场景。特别是在多网段、多网卡环境下,传统基于单播 IP 扫描的方法往往不够灵活。
为此,我们推出了 ipc-net-discovery ------一套轻量级、基于 UDP 广播的 IPC 设备发现与网络配置解决方案,适用于 RK3588 / RK1126 等嵌入式 Linux 平台,以及 Windows 端工具联动使用。
🎯 项目定位
ipc-net-discovery 是一款专注于 局域网设备发现 + 网络参数配置 的跨平台工具集,核心目标是:
✅ 一键发现同一局域网(包括不同网段/多网卡)下的 IPC 设备
✅ 支持设备网络参数(IP/掩码/网关/DNS/DHCP)在线修改
✅ 使用简单、易集成、协议轻量(基于 UDP + JSON)
✅ 适配嵌入式设备到 Windows 平台全覆盖
🧩 组件体系
该项目由两个主要组件构成:
| 组件 | 描述 | 平台 |
|---|---|---|
| ipc_net_tool | 图形化发现 & 配置工具 | Windows(Qt) |
| ipc_netd | 设备端守护进程,响应发现 & 应用网络配置 | Linux(嵌入式) |
🤝 工作原理概览
ipc-net-discovery 核心基于 UDP 广播 + JSON 协议 实现设备发现与网络配置。
整个流程主要分为两段:
🔹 发现阶段(DISCOVER / DISCOVER_ACK)
PC 端向局域网广播 DISCOVER 请求;设备端监听后回应 DISCOVER_ACK,包含设备的 IP、MAC、SN、网络信息等。

🔹 配置阶段(SET_NET / SET_NET_ACK)
PC 端在发现设备后向其发送网络配置请求;设备端应用配置并返回结果 ACK。
下图是协议交互简要时序:
ipc_netd ipc_net_tool ipc_netd ipc_net_tool DISCOVER (UDP 广播) DISCOVER_ACK (广播 37021) SET_NET (单播) SET_NET_ACK (广播 37021)
📌 协议使用固定端口:
- 服务端(ipc_netd)监听:37020
- 客户端接收 ACK:37021
🚀 功能亮点
🕵️♂️ ◼ 一键智能发现设备
- 自动向本机所有网卡所在网段发送发现广播
- 支持跨网段发现:PC 多网卡时可覆盖不同网段
- 设备支持广播 ACK,避免三层路由依赖
- 多台设备同屏展示,支持 MAC + 接口分行显示
🔧 ◼ 网络参数配置能力
✔ 支持静态 IP、子网掩码和默认网关设置
✔ 支持切换设备 DHCP 模式
✔ 操作成功后设备自动重启并显示新网络状态
操作非常简单:
打开工具 → 点击 "搜索设备" → 选中设备行 → 填写网络参数 → 点击 "修改网络"
🪛 典型使用场景
📍 现场网络调试
- 新设备出厂后尚未配置 IP
- 只需将设备连入交换机,搜索即可看到
📍 跨网段多网卡环境
- PC 有多个网卡
- 可一次性发现多个网络段内设备
📍 无人值守环境自动配置
- 在自动化生产线上批量配置 IPC 网络参数
📍 嵌入式系统集成
- 可作为 SDK 嵌入到更大系统中(如厂商定制管理平台)
🧠 工程实现特色
🔹 轻量 & 可嵌入
项目使用 UDP + JSON 协议,自定义字段灵活:
json
{
"magic": "IPC_NET_TOOL_V1",
"cmd": "DISCOVER",
...
}
消息格式清晰,便于适配与扩展,也可与现有设备兼容。
🔹 多网卡 & 跨网段友好
不同于简单单播 IP 扫描 ------ ipc-net-discovery 会主动向本机所有 IPv4 网卡发送广播,并支持设备端对局域网广播地址发送 ACK。有效覆盖:
✅ 多网卡环境
✅ 不同子网但属于同二层环境(无路由)
✅ 现场调试网络复杂场景
这部分设计灵感来源于常见服务发现协议,如 SSDP/UPnP,但更轻量、专注 IPC 场景。([维基百科][1])
📂 代码仓库结构
ipc-net-discovery/
├── ipc_net_tool/ # Windows 端 Qt 工具
├── ipc_netd/ # Linux 守护进程
├── docs/screenshots/
├── CHANGELOG.md
├── CONTRIBUTING.md
└── README.md
🛠 快速开始
🪟 Windows 客户端
- 安装 Qt5/Qt6 开发环境
- 打开
ipc_net_tool用 QtCreator 或 CMake 编译(MinGW 或 MSVC) - 运行工具,点击 "搜索设备"
🐧 Linux 设备端
- 在设备上编译
ipc_netd(CMake + C++17) - 运行守护进程:
./ipc_netd(可传参指定端口) - 保持设备与 PC 在同一局域网二层内
📣 发布建议(关键词用于 SEO)
✔ IPC 设备发现
✔ 网络一键配置
✔ 跨网段搜索工具
✔ UDP 广播 + JSON 协议
✔ 多网卡自动覆盖
✔ 嵌入式与 Windows 联动
📝 总结
ipc-net-discovery 是一个小巧、实用、适配性强的发现与配置工具,特别适合 IPC / 嵌入式设备的现场调试、批量配置和自动化运维场景。协议清晰、跨平台易用、无需路由即可跨网段发现,是实际工程中非常靠谱的解决方案。