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

SNMP编程

开发平台:

C/C++

  1. #!/usr/local/gnu/bin/perl5
  2. # -*- mode: Perl -*-
  3. ##################################################################
  4. # Multi Router Traffic Grapher: Index Generator
  5. ##################################################################
  6. #
  7. # This reads a mrtg.cfg file form std input or cmdline argument
  8. # and it takes a regexp on the cmdline to specify which 
  9. # targets to look at.
  10. #
  11. # from this info it produces a router index on std out.
  12. #
  13. ##################################################################
  14. # Created by Tobias Oetiker <oetiker@ee.ethz.ch>
  15. # Modifications by Laurie Gellatly <gellatly@one.net.au>
  16. # Distributed under the GNU copyleft
  17. #
  18. # $Id: index,v 1.1.1.1 2002/02/26 10:16:36 oetiker Exp $
  19. ##################################################################
  20. $regexp = pop @ARGV;
  21. $Title = pop @ARGV;
  22. if (defined($Title) && -f $Title) {
  23.  push(@ARGV, $Title);
  24.  $Title = "$Title Overview ($regexp)";
  25. }
  26. if (! -f $ARGV[0]) {
  27.  print "
  28. USAGE: index <mrtg.cfg> <title> <regular expression>
  29. This tool will read the contents of the mrtg.cfg file and will 
  30. return the HTML code of a webpage contanig the 'daily' graphs 
  31. of all the routers whose titles match the regular expression.
  32. NOTE: you have to adjust this tool to your needs as the HTML 
  33.       contains our logo and our name ...
  34. ";
  35.  exit ;
  36. }
  37. #slurp the cfg file
  38. while(<>) {
  39.   s/t/ /g;  #replace tabs by spac
  40.   next if /^s+$/; #ignore white space
  41.   next if /^s*#/; #ignore comments
  42.   if (/$regexp/i && ! /[^]/ && ! /[$]/ && /^title[([^]]+)]:s*(.*S)/i) {
  43.     $router=lc($1);
  44.     $arg=$2;
  45.     $titles{$router} = $arg;   
  46.     next;
  47.   }
  48.   if (/^directory[([^]]+)]:s*(.*S)/i) {
  49.     $arg = $2;
  50.     $tmp = lc($1);
  51.     $dirs{$tmp} = "$arg/";
  52.   }
  53.   if ($router && /^pagetop[([^]]+)]:s*(.*S)/i) {
  54.     next;
  55.   }
  56.   if ($router && /^s+(.*?)</H1>/) {
  57.     $titles{$router} .= " $1";
  58.   }
  59.   $router = '';
  60. }
  61. $Today=datestr(time);
  62. print <<ECHO;
  63. <HTML>
  64. <HEAD>
  65. <TITLE>$Title</TITLE>
  66. <META HTTP-EQUIV="Refresh" CONTENT=300 >
  67. </HEAD>
  68. <BODY bgcolor=#ffffff>
  69. <H1>$Title</H1>
  70. These statistics were last updated <B>$Today </B>
  71. ECHO
  72. foreach $router (sort {$titles{$a} cmp $titles{$b}} keys %titles) {
  73.   $dirs{$router} = "" if (!defined($dirs{$router}));
  74.   $rdir = $dirs{$router};
  75.   print <<ECHO;
  76. <P><B><A HREF="$rdir$router.html">$titles{$router}</B><P> 
  77.    <SMALL><!--#flastmod file="$rdir$router.html" --></SMALL></P>
  78.   <IMG BORDER=0 WIDTH=500 HEIGHT=135 SRC="$rdir$router-day.gif"></A>
  79.   <HR>
  80. ECHO
  81. }
  82. '$Revision: 1.1.1.1 $ ' =~ /Revision: (S*)/;
  83. $rev=$1;
  84. '$Date: 2002/02/26 10:16:36 $ ' =~ /Date: (S*)/;
  85. $date=$1;
  86. print <<ECHO;
  87. <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  88. <TR>
  89. <TD WIDTH=63><A ALT="MRTG"
  90. HREF="http://www.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"><IMG
  91. BORDER=0 SRC="../mrtg-l.gif"></A></TD>
  92. <TD WIDTH=25><A ALT=""
  93. HREF="http://www.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"><IMG
  94. BORDER=0 SRC="../mrtg-m.gif"></A></TD>
  95. <TD WIDTH=388><A ALT=""
  96. http://www.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"><IMG
  97. BORDER=0 SRC="../mrtg-r.gif"></A></TD>
  98. </TR>
  99. </TABLE>
  100. <SPACER TYPE=VERTICAL SIZE=4>
  101. <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  102.   <TR VALIGN=top>
  103.   <TD WIDTH=88 ALIGN=RIGHT><FONT FACE="Arial,Helvetica" SIZE=2>
  104.   $rev-$date</FONT></TD>
  105.   <TD WIDTH=388 ALIGN=RIGHT><FONT FACE="Arial,Helvetica" SIZE=2>
  106.   <A HREF="http://www.ee.ethz.ch/~oetiker">Tobias Oetiker</A>
  107.   <A HREF="mailto:oetiker@ee.ethz.ch">&lt;oetiker@ee.ethz.ch&gt;</A> 
  108.   and&nbsp;<A HREF="http://www.bungi.com">Dave&nbsp;Rand</A>&nbsp;<A HREF="mailto:dlr@bungi.com">&lt;dlr@bungi.com&gt;</A><br>
  109.   <A HREF="../routers.html">Back to Main Router List</A></FONT>
  110.   
  111. </TR>
  112. </TABLE>
  113. </BODY></HTML>
  114. ECHO
  115. sub datestr {
  116.   my ($time) = shift(@_) || return 0;
  117.   my ($wday) = ('Sunday','Monday','Tuesday','Wednesday',
  118.                 'Thursday','Friday','Saturday')[(localtime($time))[6]];
  119.   my ($month) = ('January','February' ,'March' ,'April' ,
  120.                  'May' , 'June' , 'July' , 'August' , 'September' , 
  121.                  'October' ,
  122.                  'November' , 'December' )[(localtime($time))[4]];
  123.   my ($mday,$year,$hour,$min) = (localtime($time))[3,5,2,1];
  124.   if ($min<10) {$min = "0$min";}
  125.   return "$wday, $mday $month ".($year+1900)." at $hour:$min";
  126. }