#!/usr/bin/perl use strict; use warnings; #use diagnostics; #use diagnostics "-verbose"; use constant MaxTime1 => 20; # Seconds # use Net::Nslookup qw ( nslookup ); use LWP::UserAgent; # use LWP::Protocol qw ( https ); use Term::ANSIColor qw ( BOLD BLUE RED GREEN RESET ); my $Debug="yes"; sub GetUrlRedirect ( $$ ) { # Return $Url's redirected web page. Black string if none if located # Reference: http://stackoverflow.com/questions/26087546/perl-print-the-redirected-url # system ('curl -s "SomeUrl" -w %{redirect_url}'); my $IAm = ( caller(0) )[3]; # Incoming: my $Url = $_[0]; my $Caller = "$_[1]" . "$IAm"; my $ua = LWP::UserAgent->new; $ua->timeout ( MaxTime1 ); $ua->show_progress; my $req = new HTTP::Request(GET => $Url); print STDERR "$Caller requesting $Url\n"; my $res = $ua->request($req); print STDERR "$Url redirects to $res->redirects\n"; if ( ! $res->is_success ) { print STDERR BOLD RED " ERROR ${Caller}: unable to obtain a redirect web page for ", $Url, RESET, "\n"; return ""; } else { if ( "$Debug" eq "yes" ) { print STDERR "RedirectUrl = <$res->redirects>\n"; } return $res->redirects; } } my $IAm = "UrlRedirectTest.pl "; my $WebSite = 'http://usa.kaspersky.com/files/?file=kis&program=one&lang=en&track=pu_kiskis_usen'; my $RedirectUrl = GetUrlRedirect ( $WebSite, $IAm ); print "WebSite $WebSite\nredirects to\n$RedirectUrl\n"; END