PDA

View Full Version : scripting question



bakersdozen
16th April 2003, 09:04
Calling Perl scripters!

I have a textfile containing a whole bunch of IP addresses. I want a perl script that will run through the file, telnet to port 80 on that particular IP address, do a HEAD then output to another text file if the webserver is running IIS.

This is for internal audit use and I don't have the scripting skills to do this.

Cheers...:smokin

PerlOfWisdom
16th April 2003, 12:56
Assuming you've got ActiveState Perl on your PC, including the LWP::UserAgent module:

Save the following in a file named ip_head.pl.

Call it using:
c:\ perl\bin\perl ip_head.pl iplist.txt


I accept no responsibility for anything which may happen.
#########################################
# START OF CODE
#########################################
use strict;
my ($line, $page);

while ($line = )
&nbsp &nbsp &nbsp &nbsp {
&nbsp &nbsp &nbsp &nbsp chomp($line);
&nbsp &nbsp &nbsp &nbsp $page = p($line);
&nbsp &nbsp &nbsp &nbsp print "$line\t$page\n";
&nbsp &nbsp &nbsp &nbsp }



#################################################
sub p
{
my ($url) = @_;
my ($ua, $req, $res, @resarray, $head, $page);
use LWP::UserAgent;

if ($url =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)
&nbsp &nbsp &nbsp &nbsp {
&nbsp &nbsp &nbsp &nbsp $url = "" (http://") . $url . "/";
&nbsp &nbsp &nbsp &nbsp }


$ua = LWP::UserAgent->new;
$ua->timeout(10);

# INCLUDE THIS LINE IF YOU CONNECT THROUGH A PROXY SERVER
#$ua->proxy(http => 'access7:8080'); (http://access7:8080');)

$req = new equest (HTTP::Request) HEAD => $url;

# INCLUDE THIS LINE IF YOU CONNECT THROUGH A PROXY SERVER NEEDING AUTHORISATION
#$req->proxy_authorization_basic("UserID", "Password");

$res = $ua->request($req);
if ($res->is_success)
&nbsp &nbsp &nbsp &nbsp {
&nbsp &nbsp &nbsp &nbsp $head = $res->headers;
&nbsp &nbsp &nbsp &nbsp $page = $$head{'server'};
&nbsp &nbsp &nbsp &nbsp }
else
&nbsp &nbsp &nbsp &nbsp {
&nbsp &nbsp &nbsp &nbsp $page = "NOT AVAILABLE";
&nbsp &nbsp &nbsp &nbsp }

return ($page);
}

__END__
#########################################
# END OF CODE
#########################################

bakersdozen
17th April 2003, 09:27
Ta,

Just got to get the module sorted out and I'll be away..:smokin

PerlOfWisdom
17th April 2003, 10:04
Just noticed, line 4:
while ($line = )
should be
while ($line = [left angle bracket][right angle bracket])