Вы можете сделать это, но обычно это плохая идея.
ioctl SIOCGIFCONF, как описано в "man netdevice", объясняет это.
Причина, по которой это плохая идея, в том, что вы, вероятно, не получите от нее того, что хотите.
Машина может иметь несколько или несколько IP-адресов, вы не будете знать, какой из них
общественности. Это может быть за шлюзом NAT (или несколько), в этом случае ни один из них
может быть общедоступным.
Вы просто не можете использовать эту информацию особенно полезно. Что бы вы ни хотели, это
вероятно, это не очень хорошая идея.