C# 什么API可用于发送DHCP发现、请求和确认?

C# 什么API可用于发送DHCP发现、请求和确认?,c#,network-programming,upnp,dhcp,zeroconf,C#,Network Programming,Upnp,Dhcp,Zeroconf,我已经搜索了很长一段时间,似乎在C#中找不到一个可用的DHCP客户端实现示例。我是网络编程的新手,但我正在做一些研究,要求我编写一个手动DHCP客户端,如果没有DHCP服务器,则实现自动IP 如果有任何代码示例或内置C#类的名称可以帮助我,我们将不胜感激;原因是“安全” 常规的NetAPI允许您处理级别3及以上的应用程序,但 DHCP客户端必须能够处理级别2;i、 e.用于在DHCP发现数据包上广播到MAC FF:FF:FF:FF:FF 出于安全原因,Microsoft今天不允许您以如此低的级别

我已经搜索了很长一段时间,似乎在C#中找不到一个可用的DHCP客户端实现示例。我是网络编程的新手,但我正在做一些研究,要求我编写一个手动DHCP客户端,如果没有DHCP服务器,则实现自动IP


如果有任何代码示例或内置C#类的名称可以帮助我,我们将不胜感激;原因是“安全”

常规的NetAPI允许您处理级别3及以上的应用程序,但 DHCP客户端必须能够处理级别2;i、 e.用于在DHCP发现数据包上广播到MAC FF:FF:FF:FF:FF

出于安全原因,Microsoft今天不允许您以如此低的级别制作以太网包

您不能使用原始套接字;请在此阅读原因:

原始套接字的限制


您可以在pc上安装pccap驱动程序,并使用该apI发送原始数据包

我不知道如何在C#中执行此操作,但您可能应该查找“原始套接字”。我最终意识到,Microsoft的操作系统不允许我们进行低级别调用,将IP广播到DHCP。操作系统为我们处理这个问题,我们只是问它我们的IP是什么。手动操作只能在其他操作系统上完成。至少这是我目前对它的理解。再说一次,我对所有与网络有关的事情都很陌生。在过去的15年里,我不知何故避免了网络编程:-)好吧,那么我最初的问题的答案是什么呢?我想我的答案很清楚;恐怕你找不到你要找的东西,因为它不存在。。。忘记从userlandAh查找任何解决DHCP客户端需要的C#/C++类。。这也许可以解释为什么我一直无法找到如何做到这一点。这不可能做到。。。然而,我猜我可能是一个DHCP服务器。我的猜测是,微软为您发出了一个DHCP请求,但您无法通过编程实现。然而,我可能会监听这样的请求,然后响应请求它的IP;您需要在客户端上处理级别2,但在服务器上只需要处理级别3。BOOTP两者都需要2级。您可以仅使用3级API(winsockets)对DHCP服务器进行编码,但要对DHCP客户端进行编码,您需要内核支持。