2016-02-27 82 views
1

我一直在寻找相当长的一段时间,似乎无法在C#中找到有效的DHCP客户端实现示例。我是品牌spankin'网络编程的新手,但我正在做一些研究,需要我编写手动DHCP客户端,并在没有DHCP服务器的情况下实施Auto-IP。 我想用C#发送DHCP发现数据包以获得其他IP地址如何使用C#发送dhcp发现数据包?

回答

1

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

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

DHCP框架fromat在许多地方在互联网上描述的如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