代码之家  ›  专栏  ›  技术社区  ›  Paul Kelly

有没有一种方法来检测网络路由器是否使用C/C++支持DHCP?

  •  0
  • Paul Kelly  · 技术社区  · 15 年前

    在这种情况下,应用程序告诉网络上的设备从网络路由器的DHCP服务器获取其IP地址。如果DHCP服务器不可用,则设备的行为将变得不稳定。是否有一种方法可以程序化地检测网络路由器是否支持DHCP?或者,当设备试图从DHCP服务器获取其IP地址时,是否需要这样做?

    2 回复  |  直到 15 年前
        1
  •  5
  •   Nikolai Fetissov    15 年前

    设备上的DHCP客户端正是这样做的。好吧,差不多了。

    在链接上广播DHCP发现消息。然后,如果有任何DHCP服务器愿意为这个特定的MAC地址提供服务,那么每个服务器都会从其池中保留一个IP地址,并用提供的消息回答。然后,客户机选择要“绑定”到的服务器,并发出请求消息。服务器通过ACK消息确认IP地址的授权租用。
    客户机通过简单地超时等待提供来发现DHCP服务器的“不可用性”。

    看看 DHCPing 项目。可能会给你一些想法。

    到DHCP RFC的链接:

    RFC 2131, Dynamic Host Configuration Protocol
    RFC 2132, DHCP Options and BOOTP Vendor Extensions

        2
  •  0
  •   Paul Kelly    15 年前