2013-08-28 2 views
1

Возможно ли получить все сетевые интерфейсы (up или down) имя и доступная информация в Linux с использованием C++? Я имею в виду программу, которая использует только API, чтобы получить имя интерфейса. «ioctl» печатает down интерфейсы?Как получить все имя и информацию сетевого интерфейса в C++

+0

[Это ответ] (http://stackoverflow.com/questions/8434918/find -available-network-interfaces-in-cc), сначала выполните поиск. – x5lcfd

+0

@ xingouy. Я видел это раньше. Я хочу, чтобы все интерфейсы не только доступны! – MSH

+0

@ x5lcfd Я искал, это был результат. – Katianie

ответ

1

Не специально для C++, но вы можете использовать C API и функции «getifaddrs» сделать так: http://man7.org/linux/man-pages/man3/getifaddrs.3.html

+0

Можете ли вы объяснить пример 'getifaddrs' на странице? почему оператор «for» работает 6 раз, тогда как у меня есть только 2 интерфейса lo и eth0? – MSH

+0

Из раздела примечаний «Адреса, возвращаемые в Linux, обычно будут адресами IPv4 и IPv6, назначенными интерфейсу, но также и один адрес AF_PACKET для каждого интерфейса, содержащий сведения о интерфейсе и его физическом уровне более низкого уровня». Таким образом, вы получаете адреса для ipv4, ipv6 и ethernet-адреса в разных структурах ifaddr. – PherricOxide

Смежные вопросы