Guest User

Untitled

a guest
Jul 19th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <sys/ioctl.h>
  3. #include <fcntl.h>
  4. #include <unistd.h>
  5. #include <sys/socket.h>
  6. #include <net/if.h>
  7. #include <net/pfvar.h>
  8. #include <rrd.h>
  9. #include <err.h>
  10. #include <stdlib.h>
  11.  
  12. int main(void) {
  13. int dev;
  14. struct pf_status s;
  15. char *rrd[4];
  16.  
  17. if ((dev = open("/dev/pf", O_RDONLY)) == -1)
  18. err(1, "open");
  19.  
  20. rrd[0] = "update";
  21. rrd[1] = "/home/spaceinvader/firewall.rrd";
  22. rrd[3] = NULL;
  23.  
  24. while (1) {
  25. if (ioctl(dev, DIOCGETSTATUS, &s) == -1)
  26. err(1, "ioctl");
  27.  
  28. asprintf(&rrd[2], "N:%llu:%llu:%llu", s.bcounters[0][0], s.bcounters[0][1], s.pcounters[0][0][PF_DROP]);
  29.  
  30. rrd_update(3, rrd);
  31. free(rrd[2]);
  32. sleep(300);
  33. }
  34. }
Add Comment
Please, Sign In to add comment