ResultScraping
Jump to navigation
Jump to search
An example perl script to scrape results from IPscan web sessions.
Results Scraping
Here is a simple Perl script (scrape.pl) which dumps out the open ports:
#!/usr/bin/perl use strict; use warnings; use HTML::TableExtract; my $scan = ""; { local $/=undef; open FILE, "ipv6.html" or die "Couldn't open ipv6 file: $!"; $scan = <FILE>; close FILE; } my $te = new HTML::TableExtract(); $te->parse($scan); my $pingtable = $te->table(0,0); my $udpporttable = $te->table(0,1); my $tcpporttable = $te->table(0,2); # Ping result foreach my $row ($pingtable->rows) { foreach my $ele ( @$row ) {
# ICMPv6 ECHO REQUEST returned : ECHO REPLY
if (defined $ele) { if ($ele =~ m/ECHO(.*)REPLY$/) { printf("PING response was %sREPLY\n",$1); } } } } # Currently prints out the OPEN ports foreach my $row ($udpporttable->rows) { foreach my $ele ( @$row ) { # Port 7 = RFSD if (defined $ele) { if ($ele =~ m/Port\s+(\d+)\s+=\s+([A-Z]+)/) { my $port = $1; my $state = $2; if ($state =~ m/OPEN/) { printf("UDP PORT %5d was %s\n",$port,$state); } } } } } foreach my $row ($tcpporttable->rows) { foreach my $ele ( @$row ) { # Port 7 = RFSD if (defined $ele) { if ($ele =~ m/Port\s+(\d+)\s+=\s+([A-Z]+)/) { my $port = $1; my $state = $2; if ($state =~ m/OPEN/) { printf("TCP PORT %5d was %s\n",$port,$state); } } } } }
Typical Scraped results
$ ./scrape.pl PING response was REPLY UDP PORT 123 was UDPOPEN TCP PORT 80 was OPEN TCP PORT 443 was OPEN $
This website publishes a Privacy Policy (link at the bottom of every page). Continued use of this website implies your consent to the use of data outlined in the policy.