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

时间:2016-02-27 16:36:46

标签: c#

我已经搜索了很长一段时间,似乎无法在C#中找到有效的DHCP客户端实现示例。我是网络编程新手的品牌spankin,但我做了一些研究,要求我编写一个手动DHCP客户端,并在没有DHCP服务器的情况下实现Auto-IP。 我想使用C#发送DHCP发现数据包以获取另一个IP地址

1 个答案:

答案 0 :(得分:1)

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

如何发送UDP已经在这里得到解答:Sending UDP Packet in C#

在互联网上的许多地方描述了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使用WinAPI:DHCP Client API

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