MMCT TEAM
Server IP : 103.53.40.154  /  Your IP : 18.191.97.229
Web Server : Apache
System : Linux md-in-35.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : ppcad7no ( 715)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0555) :  /../usr/share/../bin/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //../usr/share/../bin/ip2cc
#!/usr/bin/perl

eval 'exec /usr/bin/perl  -S $0 ${1+"$@"}'
    if 0; # not running under some shell
use strict;
$^W=1;

my $VERSION = '2.28';

use IP::Country;
use Geography::Countries;
use Socket qw ( inet_aton inet_ntoa );

getRevDate();
if ($#ARGV == 0){
    getCountry($ARGV[0]);
} else {
    print "> ";
    while(my $host = <>){
	chomp($host);
	getCountry($host);
	print "> ";
    }
}
print "\n";    

sub getCountry
{
    my $host = shift;
    my $dip = $host; # dotted IP
    my $ip = inet_aton($host);
    
    my ($cc,$country);
    if (defined $ip){
	my $reg = IP::Country->new();
	$cc = $reg->inet_ntocc($ip);
	$dip = inet_ntoa($ip);
    }

    if (!defined $cc){
	$cc = '??';
	$country = 'Not Found';
    } elsif ($cc eq '**'){
	$country = 'Private Network';
    } elsif ($cc eq 'AP'){
	$country = 'Asia-Pacific';
    } elsif ($cc eq 'EU'){
	$country = 'European Union';
    } else {
	$country = country($cc);
    }

    if (!defined $country){
	$country = 'Undefined';
    }
    
    if ($dip eq $host){
	print "  Address: $host\n  Country: $cc ($country)\n";
    } else {
	print "  Name: $host\n  Address: $dip\n  Country: $cc ($country)\n";
    }
}

sub getRevDate
{
    my $reg = IP::Country->new();
    my $tm = gmtime($reg->db_time());
    print "\n  IP::Country modules (v$VERSION)\n  Copyright (c) 2002-13 Nigel Wetters Gourlay\n";
    print "  Database updated $tm\n\n";
}

__END__

=head1 NAME

ip2cc - lookup country from IP address or hostname

=head1 SYNOPSIS

ip2cc [host-to-find]

=head1 DESCRIPTION

Ip2cc is a program to lookup countries of IP addresses. Ip2cc
has two modes: interactive and non-interactive.  Interactive mode allows
the user to query more than one hostname.  Non-interactive mode is
used to print just the country for a single host.

=head1 ARGUMENTS

Interactive mode is entered when no arguments are given.

Non-interactive mode is used when the name or Internet address of the
host to be looked up is given as the first argument.

=head1 SEE ALSO

IP::Country - the fast database used by this script.

=head1 AUTHOR

Nigel Wetters Gourlay <nwetters@cpan.org>


MMCT - 2023