pones la direccion www.tuweb.com/scan.php?ip=aqui_la_ip escribiendo la ip correcta te dice ke puertos tienes abiertos y cuales no lo ke yo kiero es ingresar dicha ip desde un formulario y ke al enviarla a dicha url me arroje los puertos abiertos ya ke de momento solo funciona escribiendo toda la url incluyendo la ip he tratado muchas formas pero no consigo lo ke kiero, el script en mecion es el siguiente:
Código PHP:
<div style="text-align: center;">
<table style="border: 1px dashed #000000;" width="50%">
<tr style="background-color: #E1E1E1; font: 10px Tahoma;">
<td width="15%" style="text-align: center;"><b>Status</b></td>
<td width="25%" style="text-align: center;"><b>Puerto</b></td>
<td width="60%" style="text-align: center;"><b>Descripción</b></td>
</tr>
<?php
# Pongo el time limit en 0 para que no se acabe el script por time limit.
set_time_limit(0);
# Cojo los puertos de puertos.txt y los meto en un array
$db = file('puertos.txt');
foreach ($db as $a=>$b) {
$puerto = explode(" ",$b);
$desc = str_replace($puerto[0]." ","",$b);
$ports[$puerto[0]] = $desc;
}
# Verifico que la ip sean numeros
if(is_numeric(str_replace(".","",$_GET['ip']))) {
# Con este foreach verifico todos los puertos
foreach($ports as $a=>$b) {
# Si conecto pongo que conecto
if(conecta($a)) {
pon($a,$b,"./images/on.gif");
}
# Si no conecto pongo que no conecto
else {
pon($a,$b,"./images/off.gif");
}
}
}
else { die("La ip debe contener solamente numeros."); }
# Función que me dice si el puerto esta abierto o no
function conecta ($port) {
$conexion = @fsockopen($_GET['ip'],$port,$errno,$errstr,5);
@fclose($conexion);
if($conexion) return 1;
else return 0;
}
# Función que pone si el puerto esta abierto o no.
function pon ($port,$desc,$img) { ?>
<tr style="font: 9px Tahoma;">
<td width="15%" style="text-align: center;"><img src="<?=$img?>" /></td>
<td width="25%" style="text-align: center;"><?=$port?></td>
<td width="60%" style="text-align: left;"><?=$desc?></td>
</tr>
<? } ?>
</table>
</div>
Saludos
![de acuerdo](http://static.forosdelweb.com/fdwtheme/images/smilies/dedosarriba.png)