#!/usr/bin/perl
# Author: Michael Sutton
# Company: Zscaler
# Aug. 31, 2010
########################

use LWP::UserAgent;
use Net::IP;
use IO::Socket::INET;

# Get IP address
my $sock = IO::Socket::INET->new(
	PeerAddr=> "www.google.com",
	PeerPort=> 80,
	Proto   => "tcp");
my $localip = $sock->sockhost;
@octets = split(/\./,$localip);

my $ua = new LWP::UserAgent;
# $ua->agent('Mozilla/5.5 (compatible; MSIE 5.5; Windows NT 5.1)');
$ua->timeout(5);

# Scan local class C
$ip = new Net::IP ("$octets[0]\.$octets[1]\.$octets[2]/24") || die;
do {
	$site = $ip->ip();
	my $url1 = "http://$site/gif/hp_invent_logo.gif";
	my $url2 = "http://$site/gif/tricolor_ink_gauge.gif";
	my $request1 = HTTP::Request->new('GET');
	my $request2 = HTTP::Request->new('GET');
	$request1->url($url1);
	$request2->url($url2);
	my $response1 = $ua->request($request1);
	my $response2 = $ua->request($request2);
	my $code1 = $response1->code;
	my $code2 = $response2->code;
	if ($response1->code == "200" || $response2->code == "200" ) {
		print "$site may be running an HP web server\n";
	}
	else {
		print "$site is NOT running an HP web server\n";
	}
} while (++$ip);
