Доброго дня!
Возможно ли системными вызовами определить как был сконфигурирован интерфейс - статически или с помощью DHCP.
Разбор конфигурационных файлов не подходит, так как место хранения конфигов и их формат отличаются в различных дистрибьтивах, про зоопарк вариантов в emdedded-устройствах даже говорить не имеет смысла.
Спасибо.
определение метода полчения сетевых настроек
Модератор: Модераторы разделов
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: определение метода полчения сетевых настроек
Если не перехватывается трафик, то в общем случае ответ "нет". Ибо само назначение адреса в случае DCHP не отличается от статического, просто сам адрес будет получен не из внутренней конфигурации, а от сервера через широковещательные запросы. В конкретной какой-либо ОС возможно эта информация и сохраняется, но сомневаюсь, что это есть в Linux.
-
- Сообщения: 2565
- ОС: Debian
Re: определение метода полчения сетевых настроек
Пожалуй можно проверять наличие файла /var/lib/dhcp/dhclient.eth0.leases, по-крайне мере это корректно для Debian и isc-dhcp-client, но тоже не совсем то.
Наиболее подходящий кандидат, как мне кажется, это структура ifa_cacheinfo.
Но почему-то у меня эта структура всегда заполнена нулями для IPv4 адресов, которые меня сейчас и интересуют.
Наиболее подходящий кандидат, как мне кажется, это структура 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 адресов, которые меня сейчас и интересуют.