1

我需要在 .NET c# 中创建一个功能,它是 RFC3927 中定义的 IPv4LL 的实现,这是一种在没有 DHCP 服务器的情况下分配链路本地 IP 地址的技术。在 Windows 上以 APIPA 名称提供了相同的功能。在linux上有这样的插件:avahi,avahi-autoipd。但是在windows上还没有找到类似的东西。

到目前为止,我只有一个解决方案:在一个范围内使用链路本地 IP 地址在网络上发送 ARP 数据包,并测试它们是否空闲,一旦我找到一个空闲的,它就会被分配为当前 IP 地址。

任何关于我的问题的建议将不胜感激。

4

2 回答 2

1

如果我是你,我会更深入地研究 Avahi,主要是因为你可以根据需要查看源代码,还可以了解它如何与 Mono 一起使用。

话虽如此,我怀疑您需要一个与您的应用程序完全分开的服务,因此没有必要将自己限制为 .Net 作为一种技术。

这有帮助吗?

于 2011-09-01T14:25:11.327 回答
0

根据定义 IPv4 链路本地寻址的 RFC,http://www.ietf.org/rfc/rfc3927.txt你确实需要发送 ARP 来验证你随机选择的 169.254.XXX.YYY 地址没有被使用已经。

要在 C# 中使用 ARP,请查看 IPHLPAPI.DLL,并通过 P/Invoke 调用它。 http://www.pinvoke.net/default.aspx/iphlpapi.SendARP

于 2015-01-27T02:08:40.067 回答