我已经搜索了很长一段时间,似乎无法在C#中找到有效的DHCP客户端实现示例。我是网络编程新手的品牌spankin,但我做了一些研究,要求我编写一个手动DHCP客户端,并在没有DHCP服务器的情况下实现Auto-IP。 我想使用C#发送DHCP发现数据包以获取另一个IP地址
答案 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.html 和http://www.pinvoke.net/default.aspx/dhcpsapi/DhcpGetClientInfo.html