zeroconf (bonjour) 分配 IP 地址 (.NET)

zeroconf (bonjour) 分配 IP 地址 (.NET)

我在 Windows 上,我想在 .NET 中编写一个工具,为网络中的嵌入式设备提供 IP(使用零配置)。

我熟悉编程,但对零配置和网络比较陌生。

所以我想知道,是否需要在每个要检测的嵌入式设备上运行守护进程?这些设备没有 Windows 或 Linux,BS 是 Bios 和 C 中的固件(支持 dhcp)或者我是否只能运行带有 ZeroConf 工具的主机来检测连接的设备?

另外,我想知道是否有适用于 Windows 的完整实现,我已经看到很多服务发布和发现,但我想我不需要这些,我只想分配 IP 地址。

毕竟,我尝试了一些有关发现服务的教程(但我猜我不需要它来进行 ip 分配?),这些教程来自 Mono.Zeroconf 和 Codeplex Bonjour,但启动时遇到了问题。(必要的守护进程可能未运行)我还尝试了 zeroconf 的 .NET Wrapper,但同样无法启动。

您能为我提供一些有关 Windows 上的 Zeroconf 的帮助吗?

答案1

ZeroConf,“零配置网络”的全部含义是指您的网络设备不需要人工或网络上的其他服务器进行任何配置(即根本不需要配置)。

在您的场景中,实现 ZeroConf 的方法是让每个嵌入式设备为自己选择一个 IP 地址。无需任何 Windows .NET 服务器进程的帮助,因为如果它们需要由其他东西配置,那就不是“ZeroConf”。选择自己的 IP 地址正式称为“IPv4 链路本地寻址”,具体操作方法定义在RFC 3927微软称之为“APIPA”。

如果您希望 ZeroConf(无服务器)主机名到地址映射,您可以这样做多播 DNS(mDNS)在您的每个嵌入式设备上(以及需要查找从名称到地址的映射的主机上)。

如果你想要 ZeroConf(无服务器)服务发布和浏览,你可以这样做DNS 服务发现(DNS-SD)在您的每个嵌入式设备上(以及需要浏览这些服务的主机上)。

Windows 已经内置了对 IPv4 链路本地寻址的支持,但他们并没有像 Apple 那样实现 mDNS 和 DNS-SD;他们做了类似但不兼容的事情,称为 LLMNR。如果你想要一个真正的适用于 Windows 的 IETF ZeroConf 堆栈,Apple 发布了用于 Windows 的 Bonjour(显然现在该软件包被称为“适用于 Windows 的 Bonjour 打印服务”,但它仍然是 Bonjour mDNSResponder ZeroConf 软件)。

相关内容