iptables_acc
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:2k
源码类别:

SNMP编程

开发平台:

C/C++

  1. #!/usr/bin/perl
  2. # iptables_acc version 0.1
  3. # Author: Gereon Ruetten, g.ruetten@gmx.de
  4. # for further informations about mrtg :
  5. #
  6. # http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html
  7. #
  8. # usage :
  9. # Target[traffic]: /usr/local/mrtg-2/bin/iptables_acc httpin httpout
  10. #
  11. # the two arguments are the user chains you want to read
  12. use strict;
  13. my ($IPTABLES, $host, $in_chain, $out_chain, $in_data, $out_data);
  14. $IPTABLES='/usr/local/bin/iptables';  # where to find iptables
  15. $host=`/bin/hostname --fqdn`;  # local hostname (for information only)
  16. # these are defaults, yu can ovveride them with command-line parameters
  17. $in_chain='httpin';  # name of input accounting rule
  18. $out_chain='httpout'; # name of output accounting rule
  19. $in_data = 0;   # edit these settings if you want to monitor something else
  20. $out_data = 0;  # then the bytes counter
  21. ## -- don't edit below here ----
  22. my (@rules, @in_count, @out_count, $upTime, $value, $c);
  23. # get command line params
  24. ($in_chain,$out_chain) = @ARGV;
  25. # fetch the status from iptables
  26. @rules=`$IPTABLES -L $in_chain -v -n -x`;
  27. splice @rules, 0, 2;
  28. @in_count=split(' ',$rules[$in_data]);
  29. @rules=`$IPTABLES -L $out_chain -v -n -x`;
  30. splice @rules, 0, 2;
  31. @out_count = split(' ',$rules[$out_data]);
  32. #$c=1;
  33. #foreach $value (@in_count) {
  34. #  printf "in $c: $valuen";
  35. #  $c++;
  36. #};
  37. #$c=1;
  38. #foreach $value (@out_count) {
  39. #  printf "out $c: $valuen";
  40. #  $c++;
  41. #};
  42. # uptime of the machine
  43. open(UPTIME,"uptime |cut -b 13-26|");
  44. $upTime=<UPTIME>;
  45. close(UPTIME);
  46. chop $upTime;
  47. # 4 lines of output only.
  48. if (!$in_count[1]) { $in_count[1] = 0; }
  49. if (!$out_count[1]) { $out_count[1] = 0; }
  50. print "$in_count[1]n",
  51. "$out_count[1]n",
  52. "$upTimen$host";