ifconfig
e os amigos obtêm a maioria das informações que mostram chamando vários ioctl nos sockets. Eu recomendo ler a fonte de ifconfig
e outras ferramentas para ver exatamente o que elas fazem. Mas na maioria dos casos, será mais fácil usar o comando popen
an ifconfig
.
Note que, em ambos os casos, o seu programa terá que ser portado para diferentes variantes unix. Nem o ioctl nem o formato de saída do ifconfig e outros comandos são portáveis.
Uma vantagem de usar o ioctl não depende de ferramentas externas. No Linux, você pode contar com ifconfig
e route
disponíveis, bem como iwconfig
se houver interfaces sem fio, mas não necessariamente ip
( ip
mostra mais informações e sua saída é mais fácil de analisar, mas a maioria das distribuições não o instala por padrão, então, na verdade, não é uma boa idéia para portabilidade).