diff options
| author | Alexander Færøy | 2014-05-31 13:10:46 +0200 | 
|---|---|---|
| committer | Alexander Færøy | 2014-05-31 13:10:46 +0200 | 
| commit | 2d0759e6ca5767b48bcc85bf38c2c43d5f0b63b1 (patch) | |
| tree | 1c5e6d817c88e67b46e216a50e0aef5428bf63df /scripts/fcountry.pl | |
| parent | 2d080422d79d1fd49d6c5528593ccaaff9bfc583 (diff) | |
| download | scripts.irssi.org-2d0759e6ca5767b48bcc85bf38c2c43d5f0b63b1.tar.bz2 | |
Import scripts from scripts.irssi.org
Diffstat (limited to 'scripts/fcountry.pl')
| -rw-r--r-- | scripts/fcountry.pl | 103 | 
1 files changed, 103 insertions, 0 deletions
| diff --git a/scripts/fcountry.pl b/scripts/fcountry.pl new file mode 100644 index 0000000..a2ea1e5 --- /dev/null +++ b/scripts/fcountry.pl @@ -0,0 +1,103 @@ +# Print the country name in /WHOIS replies +# /FCOUNTRY <URI|IP> prints where a URI or IP is hosted. +# Installation: Add $whois_fcountry somewhere in your /FORMAT whois line + +######  +# Copyright (c) 2008 Stefan Jakobs +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +#  +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +#  +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc.,  +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +# +##################################################################### + +use strict; +use Irssi 20021028; +use IP::Country::Fast; +use Geography::Countries; + +use vars qw($VERSION %IRSSI); +$VERSION = "1.0.0"; +%IRSSI = ( +	authors         => "Stefan Jakobs", +	contact         => "stefan\.jakobs\@rus\.uni-stuttgart\.de", +	name            => "fast_country", +	description     => "Print the country name in /WHOIS replies", +	license         => "GPLv2", +	changed         => "Son May 11 20:20: CET 2008", +	modules		=> "IP::Country::Fast Geography::Countries", +	commands	=> "fcountry" +); + +my $last_country = ""; +my $short_country = ""; +my $reg = IP::Country::Fast->new(); + +sub show_help() { +  my $help = $IRSSI{name} ." " .$VERSION ." +Add \$whois_fcountry somewhere in your \'/FORMAT whois\' line + +/fcountry <URI|IP> +    prints were the specified URI or IP is hosted +/fcountry help +    prints this message +"; +  my $text = ''; +  foreach (split(/\n/, $help)) { +    $_ =~ s/^\/(.*)$/%9\/$1%9/; +    $text .= $_."\n"; +  } +  print CLIENTCRAP "\n" .$text; +} + +sub sig_whois { +  my ($server, $data, $nick, $host) = @_; +  my ($me, $nick, $user, $host) = split(" ", $data); +   +  $short_country = $reg->inet_atocc($host);  +  if ($short_country) { $last_country = country $short_country; } +  else { $last_country = ""; } +} + +sub expando_whois_country { +  if (!$short_country) {  +    return ">unknown<"; +  } else { +    return $last_country ."\(" .$short_country ."\)"; +  } +} + +sub cmd_country { +  my $url_ip = lc shift; +  if ($url_ip eq 'help') { +    show_help(); +  } elsif ($url_ip eq "") { +    Irssi::print("USAGE: /FCOUNTRY <URL|IP>"); +  } else { +    my $short = $reg->inet_atocc($url_ip); +    if (!$short) { +      Irssi::print("Unknown country origin: $url_ip"); +    } else { +      my $name = country $short; +      if (!$name) { Irssi::print("$url_ip is hosted in $short"); } +      else { Irssi::print("$url_ip is hosted in $name \($short\)"); } +    } +  }  +} + +Irssi::command_bind('fcountry', \&cmd_country); +Irssi::signal_add_first('event 311', \&sig_whois); +Irssi::expando_create('whois_fcountry', \&expando_whois_country,  +		      { 'event 311' => 'None' } ); +print CLIENTCRAP "%B>>%n ".$IRSSI{name}." ".$VERSION." loaded: \'/fcountry help\' for help" | 
