]> git.ipfire.org Git - thirdparty/AWStats.git/commitdiff
Added plugin ipv6 to fully support IPv6 (included reverse DNS lookup).
authoreldy <>
Sat, 26 Apr 2003 19:14:22 +0000 (19:14 +0000)
committereldy <>
Sat, 26 Apr 2003 19:14:22 +0000 (19:14 +0000)
wwwroot/cgi-bin/plugins/ipv6.pm [new file with mode: 0644]

diff --git a/wwwroot/cgi-bin/plugins/ipv6.pm b/wwwroot/cgi-bin/plugins/ipv6.pm
new file mode 100644 (file)
index 0000000..82d7096
--- /dev/null
@@ -0,0 +1,71 @@
+#!/usr/bin/perl
+#-----------------------------------------------------------------------------
+# IPv6 AWStats plugin
+# This plugin allow AWStats to make reverse DNS Lookup on IPv6 addresses.
+#-----------------------------------------------------------------------------
+# Perl Required Modules: Net::IP and Net::DNS
+#-----------------------------------------------------------------------------
+# $Revision$ - $Author$ - $Date$
+
+
+# <-----
+# ENTER HERE THE USE COMMAND FOR ALL REQUIRED PERL MODULES
+if (!eval ('require "Net/IP.pm";'))    { return "Error: Need Perl module Net::IP"; }
+if (!eval ('require "Net/DNS.pm";'))   { return "Error: Need Perl module Net::DNS"; }
+# ----->
+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="5.5";
+my $PluginHooksFunctions="GetResolvedIP";
+# ----->
+
+# <-----
+# IF YOUR PLUGIN NEED GLOBAL VARIABLES, THEY MUST BE DECLARED HERE.
+use vars qw/
+$resolver
+/;
+# ----->
+
+
+#-----------------------------------------------------------------------------
+# PLUGIN FUNCTION: Init_pluginname
+#-----------------------------------------------------------------------------
+sub Init_ipv6 {
+       my $InitParams=shift;
+       my $checkversion=&Check_Plugin_Version($PluginNeedAWStatsVersion);
+
+       # <-----
+       # ENTER HERE CODE TO DO INIT PLUGIN ACTIONS
+       debug(" InitParams=$InitParams",1);
+       $resolver = Net::DNS::Resolver->new;
+       # ----->
+
+       return ($checkversion?$checkversion:"$PluginHooksFunctions");
+}
+
+
+#-----------------------------------------------------------------------------
+# PLUGIN FUNCTION: GetResolvedIP_pluginname
+# UNIQUE: YES (Only one plugin using this function can be loaded)
+# GetResolvedIP is called to resolve an IPv6 address into a host name
+#-----------------------------------------------------------------------------
+sub GetResolvedIP_ipv6 {
+       # <-----
+       my $ip = new Net::IP($_[0]);
+       my $reverseip= $ip->reverse_ip();
+       my $query = $resolver->query($reverseip, "PTR");
+       my @result=split(/\s/, ($query->answer)[0]->string);
+       return $result[4];
+       # ----->
+}
+
+
+1;     # Do not remove this line