#!D:/perl/bin/perl.exe -w use strict; use Socket; my $domain = shift or die "Usage: $0 [domain]\n[domain] should *not* include the protocol (e.g. http://)"; my $address = inet_ntoa( inet_aton( $domain ) ); print "Original ip: $address\n"; my $dotless = ip_to_dotless( $address ); print "Dotless ip: $dotless\n"; my $orig_address = dotless_to_ip( $dotless ); print "Original ip: $orig_address"; sub ip_to_dotless { my $ip = shift; my $index = 3; my $dotless = 0; $dotless += $_ * ( 256 ** $index-- ) foreach ( split /\./, $ip ); return $dotless; } sub dotless_to_ip { use integer; my $dotless = shift; my $index = 3; my @ip = (); while ( @ip < 4 ) { my $temp = 256 ** $index--; push @ip, $dotless / $temp; $dotless -= $ip[ -1 ] * $temp; } @ip = map { $_ + 255 } @ip; return join '.', @ip; } #### C:\>test.pl www.yahoo.com Original ip: 216.115.102.78 Dotless ip: 3631441486 Original ip: 216.115.102.77 C:\>test.pl www.perlmonks.org Original ip: 206.170.14.76 Dotless ip: 3467251276 Original ip: 206.170.14.75