определение метода полчения сетевых настроек

Модератор: Модераторы разделов

IMB
Сообщения: 2565
ОС: Debian

определение метода полчения сетевых настроек

Сообщение IMB »

Доброго дня!
Возможно ли системными вызовами определить как был сконфигурирован интерфейс - статически или с помощью DHCP.
Разбор конфигурационных файлов не подходит, так как место хранения конфигов и их формат отличаются в различных дистрибьтивах, про зоопарк вариантов в emdedded-устройствах даже говорить не имеет смысла.
Спасибо.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: определение метода полчения сетевых настроек

Сообщение NickLion »

Если не перехватывается трафик, то в общем случае ответ "нет". Ибо само назначение адреса в случае DCHP не отличается от статического, просто сам адрес будет получен не из внутренней конфигурации, а от сервера через широковещательные запросы. В конкретной какой-либо ОС возможно эта информация и сохраняется, но сомневаюсь, что это есть в Linux.
Спасибо сказали:
IMB
Сообщения: 2565
ОС: Debian

Re: определение метода полчения сетевых настроек

Сообщение IMB »

Пожалуй можно проверять наличие файла /var/lib/dhcp/dhclient.eth0.leases, по-крайне мере это корректно для Debian и isc-dhcp-client, но тоже не совсем то.
Наиболее подходящий кандидат, как мне кажется, это структура ifa_cacheinfo.

Код: Выделить всё

struct ifa_cacheinfo
{
        __u32   ifa_prefered;
        __u32   ifa_valid;
        __u32   cstamp; /* created timestamp, hundredths of seconds */
        __u32   tstamp; /* updated timestamp, hundredths of seconds */
};

Но почему-то у меня эта структура всегда заполнена нулями для IPv4 адресов, которые меня сейчас и интересуют.
Спасибо сказали: