使用DHCP获取IP地址,网关,掩码和广播信息



我想编写一个程序,该程序从带有MAC地址的接口,发送DHCP请求,然后从DHCP中恢复IP地址,网关,掩码和广播地址服务器。

我使用了DHCP客户端的此实现,但它仅提供IP地址和网关地址。

我阅读了有关DHCP消息格式的信息,但我没有找到面具或广播归档。但是,当使用DHCPCLIENT命令行时,我可以看到使用IFConfig,即接口具有掩码和广播地址,如下:

arm@arm-desktop:~/dhclient wlp2s0
arm@arm-desktop:~/ifconfig wlp2s0
wlp2s0 Link encap:Ethernet  HWaddr 54:da:d0:15:4b:04  
      inet addr:153.179.154.55  Bcast:153.179.169.255  Mask:255.255.240.0
      inet6 addr: fe80::2037:c031:5db1:445c/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:113 errors:0 dropped:0 overruns:0 frame:0
      TX packets:56 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:112130 (112.1 KB)  TX bytes:9520 (9.5 KB)

有人可以告诉我如何获取此信息吗?

请参阅此问题,可能是您想要的。

我认为您正在编写自己的DHCP客户端,该客户端使用原始插座或其他内容直接放在电线上。

,如果您在Google上,您可以在此处或其他地方阅读有关DHCP的更多信息。如您所见,可以从DHCP服务器以及广播地址获取子网掩码。这是通过DHCP选项与DHCP服务器进行的。

然后,您必须按正确的顺序将正确的字节放在电线上,并阅读Bytes返回以获取所需的信息。

使用您链接的客户端,您可以将代码扩展到DHCP服务器的请求和处理更多信息,例如广播地址和子网掩码。有关如何在DHCP选项字段中询问信息的DHCP文档。

最新更新