首页 文章

如何从任意客户端查找DHCP租约信息?

提问于
浏览
3

我正在编写Win32 API(C)代码来查询网络中的某些信息 . 其中一条信息是DHCP租约结束时间 . 我能够从 GetIpNetTable (和/或 GetIpNetTable2 )函数中获取我需要的大部分信息;但是在加载Google,MSDN,Stackoverflow搜索之后,我无法找到从任意客户端获取所有租约信息的方法(此代码不在服务器上运行) . 我熟悉 GetAdaptersInfo 函数但只检索当前机器的信息,而不是网络上的所有机器 . 有谁知道从任意客户端映射出网络的所有DHCP租约信息的方法?

1 回答

  • 1

    您可以通过实现只读DHCP服务器来完成此操作 . 客户端将发送DHCPDISCOVER消息作为您可以接收的广播(在UDP端口67上) . 响应的DHCP服务器将广播回DHCPOFFER,包括客户端的MAC地址,相关的IP信息和租用时间 . 如果客户端接受这些设置,它现在将广播DHCPREQUEST消息,以便您的只读服务器知道客户端将(尝试)使用DHCPOFFER信息 . 您无法从服务器看到DHPCACK确认,但如果客户端发生故障,它将发送新的DHCPDISCOVER . 这样,您可以构建DHCP信息表,包括本地客户端的租用时间 .

相关问题