Linux getting all network interface names
I need to collect all the interface names, even the ones that aren't up at the moment. Like ifconfig -a . getifaddrs() is iterating through same interface name multiple times. How can I collect all the interface names just once using getifaddrs() ? You could check which entries from getifaddrs belong to the AF_PACKET family. On my system that seems to list all interfaces: struct ifaddrs *addrs,*tmp; getifaddrs(&addrs); tmp = addrs; while (tmp) { if (tmp->ifa_addr && tmp->ifa_addr->sa_family == AF_PACKET) printf("%s\n", tmp->ifa_name); tmp = tmp->ifa_next; } freeifaddrs(addrs); getifaddrs()