#include <time.h>
#include <unistd.h>
+#include <net/if.h>
#include <ifaddrs.h>
#ifdef COMPILE_FOR_LINUX
#ifdef AF_PACKET
if ((ifa->ifa_addr) && (ifa->ifa_addr->sa_family == AF_PACKET)) {
struct sockaddr_ll *s = (struct sockaddr_ll *)ifa->ifa_addr;
- if ((strcmp(ifa->ifa_name, "lo") != 0)) {
+ if (
+ ((ifa->ifa_flags & IFF_UP) != 0) &&
+ ((ifa->ifa_flags & IFF_RUNNING) != 0) &&
+ ((ifa->ifa_flags & IFF_LOOPBACK) == 0) &&
+ (ifa->ifa_addr != 0)
+ ) {
found = 1;
response = 0;
for (i = 0; ((i < s->sll_halen) && (i < int_length)); i++) {