В системе Linux общие имена интерфейсов выглядят как eth0, eth1 и т. Д. Я знаю, как найти хотя бы один IP-адрес, используя gethostbyname
или аналогичные функции, но я не знаю, как указать, какое имя интерфейс я хочу IP-адрес. Я мог бы использовать ifconfig и разобрать вывод, но выкладывание для этой информации кажется ... не элегантным.
Есть ли способ, скажем, перечислить все интерфейсы и их IP-адреса (и, возможно, MAC-адреса) в коллекцию? Или, по крайней мере, что-то вроде gethostbyinterface("eth0")
?