Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/10/2006, 10:35
Avatar de ZydRick
ZydRick
 
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 20 años
Puntos: 4
escanear puertos

Hola amigos, tengo un pekeño script para scanear puertos, sencillo pero funciona bien, funciona de esta manera:

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>
La solucion parece simple pero la verdad es ke yo me estoy liando muchisimo, espero ke alguno de uds. me pueda echar una mano con ello, gracias de antemano.

Saludos

Última edición por ZydRick; 05/10/2006 a las 14:35