#!/usr/bin/perl # # whatsmyip # # Copyright (C) 2006-2008 # Paul E. Jones # # This program will connect to Packetizer's IP address return service and # display the user's current IP address. # use LWP; # Service URL $url = "http://services.packetizer.com/ipaddress/?f=text"; # Define a user agent $ua = LWP::UserAgent->new; # Get the page from the server $response = $ua->get($url, "Accept" => "text/plain"); die "Error: Unable to get IP address: " . $response->status_line . "\n" unless $response->is_success; die "Error: Invalid content type: " . $response->content_type . "\n" unless $response->content_type eq "text/plain"; # Split the content into an array of lines @content_lines = split('\n', $response->content); # The first line contains the string "IP_Address=a.b.c.d" if ($#content_lines >= 0) { ($tag, $address) = split('=', $content_lines[0]); if ($tag eq "IP_Address") { print "$address\n"; } else { die "Error: first line is not the address string\n"; } } else { die "Error: no data was returned by the server\n"; }