Было предложено в ответе здесь: Получить IP-адрес машины , можно использовать getifaddrs()
, чтобы получить IP-адрес машины, на которой работала программа, которая прекрасно работала: D: D
Однако, при запуске одной и той же программы на двух разных системах одна отображала
SERVER_ADDRESS lo 127.0.0.1
SERVER_ADDRESS eth0 129.xxx.xxx.xxx
SERVER_ADDRESS virbr0 192.zzz.zzz.1
, а другая отображала
SERVER_ADDRESS lo0 127.0.0.1
SERVER_ADDRESS en0 192.yyy.yyy.yyy
Я собирался использовать strcmp
чтобы дифференцировать Ethernet, но теперь я понял, что он не работает в разных системах, поскольку могут быть распечатаны разные строки.
Есть ли функция (или лучший способ) проверить, является ли ifa_name
ethernetили нет?