c ++ linux - получение интерфейса от IP - PullRequest
1 голос
/ 24 января 2011

в C ++ linux-приложении, как я могу получить привязку сетевого интерфейса к каждому IP на моей машине? IP содержит: статический IP и динамический IP

Примечание: я не могу использовать системный вызов getnameinfo

10x

Ответы [ 2 ]

3 голосов
/ 24 января 2011

Вы можете использовать вызов getifaddrs ;однако, обратите внимание, что это только получает один адрес на интерфейс.Если этого недостаточно, используйте протокол rtnetlink через сокет netlink; libnetlink может сделать это проще.

2 голосов
/ 24 января 2011

Это довольно сложно сделать, я считаю, что вам нужен root-доступ.Вам нужно выдать ioctl (что-то вроде SIOCGIFCONF), которое затем возвращает вам список всех интерфейсов, а затем вы можете выполнить ioctl вызовы для извлечения информации о состоянии и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...