How to check if interface is up
Title pretty much says it all. If I run ifconfig , I get this: eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet -snip- netmask 255.255.255.0 broadcast -snip- ... Using this, I can know if it's up or not ( <UP,... ), but I want to be able to do this in C (or C++, if there is a simpler solution there) without relying on parsing external processes. Here is what I've got so far (doesn't work): bool is_interface_online(std::string interface) { struct ifreq ifr; int sock = socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP); memset(&ifr, 0, sizeof(ifr)); strcpy(ifr.ifr_name, interface.c_str());