perlquestion
Anonymous Monk
<p> someone one can help me finished it,i dont know use thread to this scripts.above is the scripts
i have a lot of domain and need to scan domain that services port which had opend
now use nmap to scan
domain save in mssql2005,has a table "psinfo" it has two row ,one is "domainname",another is "psinfo"
ex:
domainname port
www.google.com 80
www.yahoo.com 80
www.facebook.com 80,443
</p>
<code>
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
my $dsn = 'DBI:Sybase:server=sql1';
my $dbh = DBI->connect($dsn, "test", 'test123');
die "unable to connect to server $DBI::errstr" unless $dbh;
$dbh->do("use portscan");
my $query = "SELECT domainname FROM psinfo";
my $sth = $dbh->prepare ($query) or die "prepare failed\n";
$sth->execute() or die "unable to execute query $query error $DBI::errstr";
$sth->finish;
#my $rows = $sth->rows ;
#print "$row rows returned by query\n";
my $line;
my @list;
my $myport;
while ($line = $sth->fetchrow_array()) {
my @list =`nmap $line`;
foreach(@list){
if($_=~/open/g){
$_ =~ s/\/.*//g;
if($myport){$myport=$myport.','.$_;chomp $myport;}
else{$myport=$_; chomp $myport}
}
}
print "$myport\n"; #for test
$sth = $dbh->prepare("update psinfo set port=\'$myport\' where domainname=\'$line\'");
$sth->execute() or die "unable to execute update line where name is $line! error $DBI::errstr";
$sth->finish;
}
</code>
3