开源一款轻量级跨网段 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

相关推荐
盟接之桥9 小时前
盟接之桥EDI软件:API数据采集模块深度解析,打造企业数据协同新引擎
java·运维·服务器·网络·数据库·人工智能·制造
2501_907136829 小时前
离线工具箱 内含53个小工具
linux·服务器·网络
时空潮汐9 小时前
神卓N600 NAS身份核验功能深度解析
linux·运维·网络·神卓nas·神卓n600 pro·家庭轻nas
a11177611 小时前
水体渲染系统(html开源)
前端·开源·threejs·水体渲染
liron7111 小时前
自定义MCP协议的一点想法
网络
冬奇Lab12 小时前
一天一个开源项目(第30篇):banana-slides - 基于 nano banana pro 的原生 AI PPT 生成应用
人工智能·开源·aigc
The_Uniform_C@t212 小时前
论文浅读(第三期)|摘自《UAV Resilience Against Stealthy Attacks》(第一节)
网络·物联网·学习·网络安全
闲人编程13 小时前
任务监控与错误重试
linux·服务器·网络·celery·任务队列·任务监控·错误重试
tianyagukechat13 小时前
rockylinux9.5 配置IP
java·网络·tcp/ip
一次旅行14 小时前
网络硬件通用基础知识
网络·测试总结