Phuket
15.11.2004, 19:26
Ich hab mir einen momentan noch sehr simplen Portscanner in Perl geschrieben der auch halbwegs funktioniert.
Problem ist das er momentan nur einen Port nach dem anderen scannt was ziemlich lange dauert wenn keine Antwort kommt.
Jetzt hab ich im Kamel Buch zwei Methoden gefunden die sich so anhören als wären sie das richtige. Nämlich Threads und fork.
Meine Frage ist welches der beiden (wenn überhaupt) besser/schneller ist, und unter Win Systemen genauso läuft wie unter Unix Systemen. (Fork scheint bei Win Probleme zu machen)
Wenn mir dann noch jemand anhand des folgenden Codeausschnittes meines Scanners noch rudimentär die Syntax von einem der beiden reinschreiben könnte wäre ich wunschlos glücklich :)
while ($port <= $endp)
{
$temp=IO::Socket::INET->new(
PeerAddr => "$host",
PeerPort => $port,
Proto => "tcp");
if ($temp)
{
foreach (@list) #List ist eine Portliste nach dem Schema 80 Http
{
if (/^$port\s/)
{print $_ . "\n" ;
print LOGFILE $_ . "\n" if $log ; }
}
}
close $temp ;
$port++;
}
Problem ist das er momentan nur einen Port nach dem anderen scannt was ziemlich lange dauert wenn keine Antwort kommt.
Jetzt hab ich im Kamel Buch zwei Methoden gefunden die sich so anhören als wären sie das richtige. Nämlich Threads und fork.
Meine Frage ist welches der beiden (wenn überhaupt) besser/schneller ist, und unter Win Systemen genauso läuft wie unter Unix Systemen. (Fork scheint bei Win Probleme zu machen)
Wenn mir dann noch jemand anhand des folgenden Codeausschnittes meines Scanners noch rudimentär die Syntax von einem der beiden reinschreiben könnte wäre ich wunschlos glücklich :)
while ($port <= $endp)
{
$temp=IO::Socket::INET->new(
PeerAddr => "$host",
PeerPort => $port,
Proto => "tcp");
if ($temp)
{
foreach (@list) #List ist eine Portliste nach dem Schema 80 Http
{
if (/^$port\s/)
{print $_ . "\n" ;
print LOGFILE $_ . "\n" if $log ; }
}
}
close $temp ;
$port++;
}