Is it safe to assume that the loopback network adapter on a Linux system will always be called 'lo' - is this just a naming convention that may not be adhered to, or must it always be the case?
I don't know of any Linux system that has a loopback interface anything other than lo
. I would rely on this naming convention, if I write a system-specific script, but not when writing a portable program. For example loopback in OSX is lo0
.
A reliable way in C is calling a SIOCGIFCONF
ioctl
on a socket, iterating over the interfaces, calling SIOCGIFFLAGS
ioctl
on each one, and checking which interfaces have a IFF_LOOPBACK
flag set (see /usr/include/linux/if.h
).
SIOCGIFCONF
will also give you interface names.
In my experience it is a common name, although you shouldn't always trust in it being so. Maybe enumerating the interfaces and looking for the one with an address of 127.0.0.1 would be the way to go?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With