Codice:
<?php
error_reporting(E_ALL ^ E_NOTICE);
set_time_limit(0);
while(true) {
echo "Port Scanner by -Kratos- www.italianhack.org";
echo "\n";
echo "\n";
echo "Menu':";
echo "\n";
echo"\t";
echo "1) Effettua il port scanner";
echo "\n";
echo "\t";
echo "2) Esci dal port scanner";
echo "\n";
echo "\n";
echo "Quale operazione vuoi effettuare:";
echo "\n";
$choice=intval(fgets(STDIN));
switch($choice) {
case 1:
echo "\n";
echo "\n";
echo "Digita l'ip dell'host da esaminare:";
echo "\n";
$ip=trim(strtolower(fgets(STDIN)));
if(!preg_match('/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/', $ip)) {
echo "\n";
echo "\n";
echo "L'ip digitato non rispetta un formato sintatticamente valido.";
echo "\n";
break;
}
echo "\n";
echo "\n";
echo "Digita il range delle porta da esaminare (ex: 70-80):";
echo "\n";
$range=trim(strtolower(fgets(STDIN)));
if(!preg_match('/^[0-9]+\-[0-9]+$/', $range)) {
echo "\n";
echo "\n";
echo "Il range delle porte da esaminare digitato non č valido.";
echo "\n";
break;
}
echo "\n";
echo "\n";
echo "Vuoi salvare la scansione in un file (y/n)?";
echo "\n";
$save=trim(strtolower(fgets(STDIN)));
if($save=="y") {
$fp=fopen("c:\program.txt", "w+");
if(!$fp) {
echo "\n";
echo "\n";
echo "Non č stato possibile creare il file per la scansione";
echo "\n";
break;
}
fwrite($fp, "Port Scanner by -Kratos- www.italianhack.org");
fwrite($fp, "\r\n");
fwrite($fp, "Host in esaminazione $ip");
fwrite($fp, "\r\n");
fwrite($fp, "\r\n");
}
echo "\n";
echo "Avvio Port Scanner...";
echo "\n";
echo "\n";
$range=explode("-", $range);
for($i=$range[0]; $i<=$range[1]; $i++) {
$socket=@socket_create(AF_INET, SOCK_STREAM, 0);
$result=@socket_connect($socket, $ip, $i);
if($result===true) {
echo "Porta $i aperta";
echo "\n";
if($save=="y") {
fwrite($fp, "Porta $i aperta");
fwrite($fp, "\r\n");
}
}
socket_close($socket);
}
if($fp)
fclose($fp);
echo "\n";
echo "\n";
echo "Fine Port Scanner.";
echo "\n";
break;
case 2:
default:
echo "\n";
echo "\n";
echo "Arrivederci da www.italianhack.org ";
echo "\n";
exit;
}
}
?>