【发布时间】:2009-10-22 16:54:41
【问题描述】:
有一种情况,应用程序告诉网络上的设备从网络路由器的 DHCP 服务器获取其 IP 地址。如果 DHCP 服务器不可用,则设备的行为会变得不稳定。有没有一种方法可以在程序上检测网络路由器是否支持 DHCP?或者,这是设备在尝试从 DHCP 服务器获取其 IP 地址时需要执行的操作吗?
【问题讨论】:
标签: c++ c network-programming dhcp
有一种情况,应用程序告诉网络上的设备从网络路由器的 DHCP 服务器获取其 IP 地址。如果 DHCP 服务器不可用,则设备的行为会变得不稳定。有没有一种方法可以在程序上检测网络路由器是否支持 DHCP?或者,这是设备在尝试从 DHCP 服务器获取其 IP 地址时需要执行的操作吗?
【问题讨论】:
标签: c++ c network-programming dhcp
设备上的 DHCP 客户端正是这样做的。好吧,差不多了。
DHCP DISCOVERY 消息在链路上广播。然后,如果有任何 DHCP 服务器愿意为这个特定的 MAC 地址提供服务,则每个服务器都会从其池中保留一个 IP 地址,并以 OFFER 消息进行响应。客户端然后选择它想要“绑定”到的服务器并发出请求消息。服务器使用 ACK 消息确认 IP 地址的授予租约。
客户端通过简单地超时等待提供来发现 DHCP 服务器的“不可用”。
看看DHCPing 项目。可能会给你一些想法。
DHCP RFC 的链接:
RFC 2131, Dynamic Host Configuration Protocol
RFC 2132, DHCP Options and BOOTP Vendor Extensions
【讨论】:
【讨论】: