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>";
}
?>