Подскажите, пожалуйста, как на C под Linux можно грамотно получить IP устройства по имени интерфейса, т.е. например получить eth0 -> X.Y.Z.K
Грамотно, т.е. без всяких там grep`ов вывода проги ifconfig.
Чувствуется, что это может быть в /proc ... Заранее спасибо.
>Подскажите, пожалуйста, как на C под Linux можно грамотно получить IP устройства по имени интерфейса, т.е. например получить eth0 -> X.Y.Z.K
>Грамотно, т.е. без всяких там grep`ов вывода проги ifconfig.
>Чувствуется, что это может быть в /proc ... Заранее спасибо.Грамотно, это как раз и есть ifconfig|grep, так как любой другой способ зависит от операционной системы, никсы они разные... во всех по разному.
Но если очень хочется, то поиск рулит:
http://www.opennet.me/openforum/vsluhforumID9/5500.html
ЗЫСитуации
1. IPv4 нет на фейсе, но есть IPv6
2. на фейсе есть несколько IP-адресов
и т.п.
Готовы разруливать?Вывод если не утилиту по работе с фейсами делаете, то делайте как все - задавайте IP в конфиге программы, пример тому малоизвестная софтинко apache :)
>Подскажите, пожалуйста, как на C под Linux можно грамотно получить IP устройства по имени интерфейса, т.е. например получить eth0 -> X.Y.Z.K
>Грамотно, т.е. без всяких там grep`ов вывода проги ifconfig.
>Чувствуется, что это может быть в /proc ... Заранее спасибо.грамотно - это прочитать man на предмет ioctl SIOCGIFADDR и не задавать глупых вопросов ._.