Prubate esto
escanea el puerto 21, 23, 80
Código PHP:
<?php
global $REMOTE_ADDR;
echo "
<b>Port Scanner</b><br><br>
IP Address: $REMOTE_ADDR<br><br>";
$scan_ports = array("21", "23", "80");
$port_description = array("FTP", "Telnet", "HTTP");
$max_timeout = "2";
for($x = 0; $x < count($scan_ports); $x++) {
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
//socket_set_nonblock($socket);
echo "" . $port_description[$x] . ": ";
$time = time();
while(!$connect = socket_connect($socket, "$REMOTE_ADDR", "" . $scan_ports[$x] . "")) {
$error = socket_last_error($socket);
if($error == 155 || $error == 114) {
if((time() - $time) > $max_timeout) {
$status = "Stealth";
socket_close($socket);
break;
}
sleep(1);
continue;
} elseif($error == 10061) {
$status = "Closed";
} elseif($error == -10003) {
$status = "Error - unkown server";
}
break;
}
if($connect) {
$status = "Open";
}
socket_set_block($socket);
socket_close($socket);
unset($connect);
echo "$status<br><br>";
}
?>