⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 geoip_isp_maxmind.pm

📁 awstats-6.6.zip tomcat日志分析包linux
💻 PM
📖 第 1 页 / 共 2 页
字号:
#!/usr/bin/perl#-----------------------------------------------------------------------------# GeoIp_Isp_Maxmind AWStats plugin# This plugin allow you to add a city report.# Need the licensed ISP database from Maxmind.#-----------------------------------------------------------------------------# Perl Required Modules: Geo::IP or Geo::IP::PurePerl#-----------------------------------------------------------------------------# $Revision: 1.9 $ - $Author: eldy $ - $Date: 2006/05/06 02:54:48 $# <-----# ENTER HERE THE USE COMMAND FOR ALL REQUIRED PERL MODULESuse vars qw/ $type /;$type='geoip';if (!eval ('require "Geo/IP.pm";')) {	$error1=$@;	$type='geoippureperl';	if (!eval ('require "Geo/IP/PurePerl.pm";')) {		$error2=$@;		$ret=($error1||$error2)?"Error:\n$error1$error2":"";		$ret.="Error: Need Perl module Geo::IP or Geo::IP::PurePerl";		return $ret;	}}# ----->use strict;no strict "refs";#-----------------------------------------------------------------------------# PLUGIN VARIABLES#-----------------------------------------------------------------------------# <-----# ENTER HERE THE MINIMUM AWSTATS VERSION REQUIRED BY YOUR PLUGIN# AND THE NAME OF ALL FUNCTIONS THE PLUGIN MANAGE.my $PluginNeedAWStatsVersion="6.2";my $PluginHooksFunctions="AddHTMLMenuLink AddHTMLGraph ShowInfoHost SectionInitHashArray SectionProcessIp SectionProcessHostname SectionReadHistory SectionWriteHistory";# -----># <-----# IF YOUR PLUGIN NEED GLOBAL VARIABLES, THEY MUST BE DECLARED HERE.use vars qw/$geoip_isp_maxmind%_isp_p%_isp_h%_isp_k%_isp_l$MAXNBOFSECTIONGIR$MAXLENGTH/;# ----->#-----------------------------------------------------------------------------# PLUGIN FUNCTION: Init_pluginname#-----------------------------------------------------------------------------sub Init_geoip_isp_maxmind {	my $InitParams=shift;	my $checkversion=&Check_Plugin_Version($PluginNeedAWStatsVersion);    $MAXNBOFSECTIONGIR=10;    $MAXLENGTH=20;	# <-----	# ENTER HERE CODE TO DO INIT PLUGIN ACTIONS	debug(" Plugin geoip_isp_maxmind: InitParams=$InitParams",1);   	my ($mode,$datafile)=split(/\s+/,$InitParams,2);   	if (! $datafile) { $datafile="GeoIPIsp.dat"; }	if ($type eq 'geoippureperl') {		if ($mode eq '' || $mode eq 'GEOIP_MEMORY_CACHE')  { $mode=Geo::IP::PurePerl::GEOIP_MEMORY_CACHE(); }		else { $mode=Geo::IP::PurePerl::GEOIP_STANDARD(); }	} else {		if ($mode eq '' || $mode eq 'GEOIP_MEMORY_CACHE')  { $mode=Geo::IP::GEOIP_MEMORY_CACHE(); }		else { $mode=Geo::IP::GEOIP_STANDARD(); }	}	%TmpDomainLookup=();	debug(" Plugin geoip_isp_maxmind: GeoIP initialized type=$type mode=$mode",1);	if ($type eq 'geoippureperl') {		$geoip_isp_maxmind = Geo::IP::PurePerl->open($datafile, $mode);	} else {		$geoip_isp_maxmind = Geo::IP->open($datafile, $mode);	}# Fails on some GeoIP version# 	debug(" Plugin geoip_isp_maxmind: GeoIP initialized database_info=".$geoip_isp_maxmind->database_info());	# ----->	return ($checkversion?$checkversion:"$PluginHooksFunctions");}#-----------------------------------------------------------------------------# PLUGIN FUNCTION: AddHTMLMenuLink_pluginname# UNIQUE: NO (Several plugins using this function can be loaded)#-----------------------------------------------------------------------------sub AddHTMLMenuLink_geoip_isp_maxmind {    my $categ=$_[0];    my $menu=$_[1];    my $menulink=$_[2];    my $menutext=$_[3];	# <-----	if ($Debug) { debug(" Plugin geoip_isp_maxmind: AddHTMLMenuLink"); }    if ($categ eq 'who') {        $menu->{'plugin_geoip_isp_maxmind'}=0.6;              # Pos        $menulink->{'plugin_geoip_isp_maxmind'}=2;          # Type of link        $menutext->{'plugin_geoip_isp_maxmind'}="ISP";      # Text    }	# ----->	return 0;}#-----------------------------------------------------------------------------# PLUGIN FUNCTION: AddHTMLGraph_pluginname# UNIQUE: NO (Several plugins using this function can be loaded)#-----------------------------------------------------------------------------sub AddHTMLGraph_geoip_isp_maxmind {    my $categ=$_[0];    my $menu=$_[1];    my $menulink=$_[2];    my $menutext=$_[3];	# <-----    my $ShowISP='H';	$MinHit{'Isp'}=1;	my $total_p; my $total_h; my $total_k;	my $rest_p; my $rest_h; my $rest_k;	if ($Debug) { debug(" Plugin geoip_isp_maxmind: AddHTMLGraph $categ $menu $menulink $menutext"); }	my $title='ISP';	&tab_head("$title",19,0,'isp');	print "<tr bgcolor=\"#$color_TableBGRowTitle\"><th>ISP : ".((scalar keys %_isp_h)-($_isp_h{'unknown'}?1:0))."</th>";	if ($ShowISP =~ /P/i) { print "<th bgcolor=\"#$color_p\" width=\"80\">$Message[56]</th>"; }	if ($ShowISP =~ /P/i) { print "<th bgcolor=\"#$color_p\" width=\"80\">$Message[15]</th>"; }	if ($ShowISP =~ /H/i) { print "<th bgcolor=\"#$color_h\" width=\"80\">$Message[57]</th>"; }	if ($ShowISP =~ /H/i) { print "<th bgcolor=\"#$color_h\" width=\"80\">$Message[15]</th>"; }	if ($ShowISP =~ /B/i) { print "<th bgcolor=\"#$color_k\" width=\"80\">$Message[75]</th>"; }	if ($ShowISP =~ /L/i) { print "<th width=\"120\">$Message[9]</th>"; }	print "</tr>\n";	$total_p=$total_h=$total_k=0;	my $count=0;	&BuildKeyList($MaxRowsInHTMLOutput,$MinHit{'Isp'},\%_isp_h,\%_isp_h);    	foreach my $key (@keylist) {            if ($key eq 'unknown') { next; }   			my $p_p; my $p_h;   			if ($TotalPages) { $p_p=int($_isp_p{$key}/$TotalPages*1000)/10; }   			if ($TotalHits)  { $p_h=int($_isp_h{$key}/$TotalHits*1000)/10; }   		    print "<tr>";   		    my $isp=$key; $isp =~ s/_/ /g;   		    print "<td class=\"aws\">".ucfirst($isp)."</td>";    		if ($ShowISP =~ /P/i) { print "<td>".($_isp_p{$key}?$_isp_p{$key}:"&nbsp;")."</td>"; }    		if ($ShowISP =~ /P/i) { print "<td>".($_isp_p{$key}?"$p_p %":'&nbsp;')."</td>"; }    		if ($ShowISP =~ /H/i) { print "<td>".($_isp_h{$key}?$_isp_h{$key}:"&nbsp;")."</td>"; }    		if ($ShowISP =~ /H/i) { print "<td>".($_isp_h{$key}?"$p_h %":'&nbsp;')."</td>"; }    		if ($ShowISP =~ /B/i) { print "<td>".Format_Bytes($_isp_k{$key})."</td>"; }    		if ($ShowISP =~ /L/i) { print "<td>".($_isp_p{$key}?Format_Date($_isp_l{$key},1):'-')."</td>"; }    		print "</tr>\n";    		$total_p += $_isp_p{$key}||0;    		$total_h += $_isp_h{$key};    		$total_k += $_isp_k{$key}||0;    		$count++;    	}	if ($Debug) { debug("Total real / shown : $TotalPages / $total_p - $TotalHits / $total_h - $TotalBytes / $total_h",2); }	$rest_p=0;	$rest_h=$TotalHits-$total_h;	$rest_k=0;	if ($rest_p > 0 || $rest_h > 0 || $rest_k > 0) {	# All other cities#	    print "<tr>";#	    print "<td class=\"aws\">&nbsp;</td>";#   		if ($ShowISP =~ /P/i) { print "<td>&nbsp;</td>"; }#   		if ($ShowISP =~ /P/i) { print "<td>&nbsp;</td>"; }#   		if ($ShowISP =~ /H/i) { print "<td>&nbsp;</td>"; }#   		if ($ShowISP =~ /H/i) { print "<td>&nbsp;</td>"; }#   		if ($ShowISP =~ /B/i) { print "<td>&nbsp;</td>"; }#   		if ($ShowISP =~ /L/i) { print "<td>&nbsp;</td>"; }#        print "</tr>\n";		my $p_p; my $p_h;		if ($TotalPages) { $p_p=int($rest_p/$TotalPages*1000)/10; }		if ($TotalHits)  { $p_h=int($rest_h/$TotalHits*1000)/10; }		print "<tr>";		print "<td class=\"aws\"><span style=\"color: #$color_other\">$Message[2]/$Message[0]</span></td>";		if ($ShowISP =~ /P/i) { print "<td>".($rest_p?$rest_p:"&nbsp;")."</td>"; }   		if ($ShowISP =~ /P/i) { print "<td>".($rest_p?"$p_p %":'&nbsp;')."</td>"; }		if ($ShowISP =~ /H/i) { print "<td>".($rest_h?$rest_h:"&nbsp;")."</td>"; }   		if ($ShowISP =~ /H/i) { print "<td>".($rest_h?"$p_h %":'&nbsp;')."</td>"; }		if ($ShowISP =~ /B/i) { print "<td>".Format_Bytes($rest_k)."</td>"; }		if ($ShowISP =~ /L/i) { print "<td>&nbsp;</td>"; }		print "</tr>\n";	}	&tab_end();	# ----->	return 0;}#-----------------------------------------------------------------------------# PLUGIN FUNCTION: ShowInfoHost_pluginname# UNIQUE: NO (Several plugins using this function can be loaded)# Function called to add additionnal columns to the Hosts report.# This function is called when building rows of the report (One call for each# row). So it allows you to add a column in report, for example with code :#   print "<TD>This is a new cell for $param</TD>";# Parameters: Host name or ip#-----------------------------------------------------------------------------sub ShowInfoHost_geoip_isp_maxmind {    my $param="$_[0]";	# <-----	if ($param eq '__title__') {    	my $NewLinkParams=${QueryString};    	$NewLinkParams =~ s/(^|&|&amp;)update(=\w*|$)//i;    	$NewLinkParams =~ s/(^|&|&amp;)output(=\w*|$)//i;    	$NewLinkParams =~ s/(^|&|&amp;)staticlinks(=\w*|$)//i;    	$NewLinkParams =~ s/(^|&|&amp;)framename=[^&]*//i;    	my $NewLinkTarget='';    	if ($DetailedReportsOnNewWindows) { $NewLinkTarget=" target=\"awstatsbis\""; }    	if (($FrameName eq 'mainleft' || $FrameName eq 'mainright') && $DetailedReportsOnNewWindows < 2) {    		$NewLinkParams.="&framename=mainright";    		$NewLinkTarget=" target=\"mainright\"";    	}    	$NewLinkParams =~ s/(&amp;|&)+/&amp;/i;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -