如何使用 C# 发送 DHCP 发现数据包

本文关键字:发现 数据包 DHCP 发送 何使用 | 更新日期: 2023-09-27 18:36:27

我已经搜索了一段时间,似乎找不到C#中有效的DHCP客户端实现示例。我是网络编程的新手,但我正在做一些研究,需要我编写一个手动的DHCP客户端,如果没有DHCP服务器,则实现Auto-IP。我想使用 C# 发送 DHCP 发现数据包以获取其他 IP 地址

如何使用 C# 发送 DHCP 发现数据包

DHCP使用UDP作为传输协议,因此您需要发送带有DHCP有效负载的UDP数据报。

如何发送 UDP 已经在这里回答了:在 C# 中发送 UDP 数据包

DHCP帧在互联网上的许多地方都有描述,例如 http://www.tarunz.org/~vassilii/TAU/protocols/dhcp/frame.htm

下面是另一个示例DHCP服务器:http://www.codeproject.com/Articles/20431/A-Small-DHCP-Server-Using-UDP-With-Asynchronous-Ca

不幸的是,似乎没有用于查询DHCP服务器的C#库,但是您可以通过P/Invoke:DHCP客户端API使用WinAPI。

编辑:经过一些搜索,这里是WinAPI调用的C#包装器:http://www.rupj.net/portfolio/dhcp-web-services.html和 http://www.pinvoke.net/default.aspx/dhcpsapi/DhcpGetClientInfo.html