use strict; { package IPSanity; use Socket; sub VerifyIP { chomp ($_); my ($a,$c,$d,$e,$f,$g); my $b = 0; if ($_ =~ /[a-zA-Z]+/) { print "$_\n"; $_ = gethostbyname($_); ($c,$d,$e,$f) = unpack('C4', $_); $_ = $c . "." . $d . "." . $e . "." . $f; } my @_temp = split(/\./,$_); $g = $#_temp; undef $_; if ($g ne '3') { print "Your IP address is malformed. I hope this isn't a +reflection of the user...\n"; exit; } foreach $a(@_temp) { if ($a =~ /\b\d\b|\b\d\d\b|\b\d\d\d\b/) { if ($a >= 0 && $a <= 255) { $_ = $_ . int($a); $_ = $_ . "." unless ($b > 2); $b++; } } } my $_IP = inet_aton( $_ ); length($_IP) or die "Sorry, '$_' is invalid.\n"; $_IP = inet_ntoa($_IP); print "$_IP is valid\n"; } } print "IP or Domain Name: "; $_ = <>; chomp; IPSanity->VerifyIP($_);
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: IP Sanity Check
by grinder (Bishop) on Nov 11, 2002 at 20:39 UTC | |
by jupe (Beadle) on Nov 11, 2002 at 23:31 UTC | |
|
Re: IP Sanity Check
by jupe (Beadle) on Nov 11, 2002 at 18:50 UTC |