I need to get the list of network interface names and the network addresses to which they are bound. Unfortunately there's no standard method for this, and the two recommended CPAN modules (
IO::Interface and
Net::Interface) are buggy and unmaintained. So I am currently parsing the output of `ifconfig -a` or `ip addr show`. This works for my test machines, but I'm planning on distributing the script, so need to maximize portability among unixes.
Using SIOCGIFCONF looks like an interesting alternative, but the only perl example I found is very non-portable: Re: How do I get the local internet IP address?. sys/ioctl.ph isn't present in any of my perlbrewed perls, and even after running h2ph, it fails with "unsupported architecture" for macOS. But I did confirm with the following C program that SIOCGIFCONF is relatively portable when implemented right: https://gist.github.com/OrangeTide/909204.
Is there an alternative I missed?