开源一款轻量级跨网段 IPC 设备发现与网络配置工具

📦 开源项目地址: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 客户端

  1. 安装 Qt5/Qt6 开发环境
  2. 打开 ipc_net_tool 用 QtCreator 或 CMake 编译(MinGW 或 MSVC)
  3. 运行工具,点击 "搜索设备"

🐧 Linux 设备端

  1. 在设备上编译 ipc_netd(CMake + C++17)
  2. 运行守护进程:./ipc_netd(可传参指定端口)
  3. 保持设备与 PC 在同一局域网二层内

📣 发布建议(关键词用于 SEO)

✔ IPC 设备发现

✔ 网络一键配置

✔ 跨网段搜索工具

✔ UDP 广播 + JSON 协议

✔ 多网卡自动覆盖

✔ 嵌入式与 Windows 联动


📝 总结

ipc-net-discovery 是一个小巧、实用、适配性强的发现与配置工具,特别适合 IPC / 嵌入式设备的现场调试、批量配置和自动化运维场景。协议清晰、跨平台易用、无需路由即可跨网段发现,是实际工程中非常靠谱的解决方案。

📦 开源地址: https://gitee.com/lv-shuliang/ipc-net-discovery

相关推荐
Qaz555666914 小时前
透明DNS选路实验
网络
haluhalu.5 小时前
Linux网络编程------网络基础
网络·网络协议
坐怀不乱杯魂5 小时前
Linux网络 - HTTP协议
网络·网络协议·http
ipooipoo11886 小时前
动态住宅IP的定义、核心优势与技术场景应用
网络·网络协议·tcp/ip
祁鱼鱼鱼鱼鱼6 小时前
Keepalived实验环境设定
linux·服务器·网络
滴水之功7 小时前
OpenWrt的WAN和LAN的切换
linux·网络·openwrt
LitchiCheng8 小时前
Mujoco 开源机械臂 RL 强化学习避障、绕障
人工智能·python·开源
莹莹学编程—成长记8 小时前
预备知识socket
网络
winfreedoms8 小时前
java-网络编程——黑马程序员学习笔记
java·网络·学习