Получить IP-адрес, шлюз, маску и широковещательную информацию, используя DHCP

Я хотел бы написать программу, которая с интерфейса с MAC-адресом отправляет запрос DHCP и возвращает IP-адрес, шлюз, маску и широковещательный адрес с сервера DHCP.

я использовал эта реализация клиента 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)

Может кто-нибудь сказать мне, как эта информация получается?

1

Решение

Увидеть этот вопрос, это может быть то, что вы хотите.

Я так понимаю, вы пишете свой собственный DHCP-клиент, который использует необработанные сокеты или что-то еще, чтобы поместить байты прямо в провод.

Вы можете прочитать больше о DHCP Вот или в другом месте, если вы гуглите. Как вы можете видеть, маска подсети может быть получена от DHCP-сервера, а также широковещательный адрес. Это делается с помощью параметров DHCP при соединении с сервером DHCP.

Затем вы должны поместить правильные байты в провод в правильном порядке и прочитать возвращаемые байты, чтобы получить нужную информацию.

Используя клиент, с которым вы связались, вы можете расширить код для запроса и обработки дополнительной информации с DHCP-сервера, такой как широковещательный адрес и маска подсети. См. Документацию DHCP для получения информации о поле параметров DHCP.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]