Я работаю над встроенным устройством, на котором запущен BusyBox.
Система получает свой адрес с помощью команды ip. Я хочу выяснить из моей программы C, является ли IP-адрес устройства статическим или полученным с DHCP-сервера. Как мне это сделать?
Определить, является ли IP статическим или получен от DHCP на busybox
comment
Я думаю, вам следует отредактировать свой вопрос, указав в первую очередь подробности того, как вы получаете IP-адрес. Я предполагал, что у вас запущен dhcp-клиент BusyBox, но это кажется неправильным.
- person unwind   schedule 08.10.2009
Ответы (4)
Если вы управляете средой, я предлагаю установить переменную env или создать файл флага где-нибудь, где вы можете статистику, когда установлен IP-адрес.
person
gnud
schedule
08.10.2009
Я не знаю, как ваши пользователи взаимодействуют с вашей встроенной системой. Но на нашем (тех же компонентах) у нас есть CLI, который регистрирует выбранный параметр типа DHCP / STATIC в структуре SHM (db) для каждого интерфейса.
По сути, вам нужно отслеживать, как был установлен IP-адрес интерфейса.
person
Troglobit
schedule
27.05.2011
Команда dumpleases должна отображать текущие аренды. Я думаю, если вы можете определить, что у вас есть IP-адрес, но нет аренды, тогда адрес будет статическим.
person
unwind
schedule
08.10.2009
устройство получает свой адрес с помощью команды ip, а не udhcp, поэтому dumpleases не работает
- person amitp; 08.10.2009
Взгляните на этот вопрос и проверьте флаг IFF_DYNAMIC - он может быть установлен, когда DHCP активен на интерфейсе.
person
Adam Liss
schedule
08.10.2009
IFF_DYNAMIC указывает коммутируемое устройство с изменяющимися адресами
- person amitp; 08.10.2009
в Solaris есть флаг IFF_DHCPRUNNING. Есть ли аналог для Linux?
- person amitp; 08.10.2009