ifwatchd/pps.c

27 lines
668 B
C
Raw Normal View History

2017-09-17 20:09:25 +04:30
#include <stdio.h>
#include <ifaddrs.h>
#include <net/if.h>
#include <string.h>
#define IFA_STAT(s) (((struct if_data *)ifa->ifa_data)->ifi_ ## s)
int main(void)
{
struct ifaddrs *ifap, *ifa;
char *name;
if (getifaddrs(&ifap) != 0) {
fprintf(stderr, "error\n");
2017-09-17 20:09:25 +04:30
}
else {
for (ifa = ifap; ifa; ifa= ifa->ifa_next) {
name = ifa->ifa_name;
printf("%s: %lu, %lu\n", ifa->ifa_name, IFA_STAT(opackets), IFA_STAT(ipackets));
while (ifa->ifa_next != NULL &&
(strcmp(ifa->ifa_next->ifa_name, name) == 0)) {
ifa = ifa->ifa_next;
}
}
}
}