Hola quisiera saber cómo hacer un escaner de puertos de este tipo:
http://www.internautas.org/w-scanonline.php
he probado con muchos escaners pero ninguno me da resultado excepto ese sistema.
Alguna sugerencia?
Saludos.
lo que quiero es el código fuente de un TCP/IP port escanner
suena de algo? .. gracias
No hagas doblepost.
<?
$host = "foro.elhacker.net";
for($i=0;$i<500;$i++) {
$fp = fsockopen($host,$i,$errno,$errstr,10);
if($fp)
{
echo "port " . $i . " open on " . $host . "\n";
fclose($fp);
}
else
{
echo "port " . $i . " closed on " . $host . "\n";
}
flush();
} //end for
?>
Ese es un ejemplo muy básico. En Google encontrarás muchos más.
mm no me sirve..
aver, yo tengo un programa escuchando en el puerto 81 y al usar el scanner de http://www.internautas.org/w-scanonline.php me sale que tengo el puerto abierto, pero con los demás escanners que he encontrado en Google en PHP, me dice que está cerrado cuando esto no es así...
me explico?
http://infrangelux.sytes.net/ScanX/#
eso es lo que yo busco :)
El ejemplo que te he dejado sirve igualmente, sólo hay que modificarlo un poco.
Tienes que enviar los datos mediante fput() asociándolo al handler.
Por lo visto no sabes PHP, primero aprende y luego pide ayuda en lo que no te salga.
enfin....
ya he dado con la solución, solo tengo que abrir una conexión mediante sockets a un servidor y con un if indicar si el puerto está abierto o cerrado.
stream_socket_client("tcp://IP/WEB:PUERTO", $errno, $errstr, 30);
Gracias.
Saludos.
Cita de: madpitbull_99 en 5 Octubre 2011, 19:19 PM
El ejemplo que te he dejado sirve igualmente, sólo hay que modificarlo un poco.
Tienes que enviar los datos mediante fput() asociándolo al handler.
Por lo visto no sabes PHP, primero aprende y luego pide ayuda en lo que no te salga.
1.- Tu ejemplo no es 100% "servible" ya que necesitas tener la opción habilitada en el php.ini para abrir sockets, y aunque la tengas, es posible que tu router/ISA te bloquee la salida.
2.- "Por lo visto no sabes
PHP, primero aprende y luego pide ayuda en lo que no te salga." No entiendo como eres global dando ese tipo de respuestas.
@дٳŦ٭
1. En casi todos los hostings compartidos esa opción viene habilitada por defecto, al menos los hostings "respetables" y de pago
la tienen.
2. Tal vez me haya pasado con mi respuesta ¿pero qué tipo de aportación haces tú al hilo viniendo sólo a criticarme?
Al menos le he dejado un ejemplo de cómo se haría. Fíjate en el primer mensaje del usuario, tal vez te des cuenta de lo que
pide el usuario.
3. Si tú eres uno de esos "gurú" del PHP ¿porque no le ayudas? y dejas de criticar a otros. O al menos si criticas, da un ejemplo
de cómo debería hacerse bien si eres "tan iluminado". A ver si bajas esos humos.
Un ejemplo de tu magníficas respuestas:
(http://madzone.comoj.com/image_host/images/screen14680718534e8d6b34deb927.45823723pjp.png)
Se nota lo mucho que dominas el tema de la programación web...
jajajajja ha hecho los deberes eh jajaja
Acontinuación te dejo un scanner de puertos en php que encontré buscando:
index.html
<style type="text/css"><!--
body {
background-color: #000000;
}
body,td,th {
color: #FF0000;
}
-->
</style><form action="cod.php" method="post">
<p align="center">ESCANER DE PUERTOS </p>
<p align="center"><img src="Calavera Mortal_800.jpg" width="150" height="150" /></p>
<p align="center">
DIGITE LA IP
<input name="ip" type="text" size="15" maxlength="15" />
<input type="submit" name="accion" value="Escanear" />
</p>
</form>
cod.php
<style type="text/css">
<!--
body,td,th {
color: #FF0000;
}
body {
background-color: #000000;
}
-->
</style><table style="border: 1px solid BLACK;" width="50%">
<tr>
<td style="text-align: center; border: 1px solid RED; padding: 5px; color: RED; background: BLACK; font-weight: bold;">Status</td>
<td style="text-align: center; border: 1px solid RED; padding: 5px; color: RED; background: BLACK; font-weight: bold;">Puerto</td>
<td style="text-align: center; border: 1px solid RED; padding: 5px; color: RED; background: BLACK; font-weight: bold;">Descripción</td>
</tr>
<?php
set_time_limit(0);
$db = file('puertos.txt');
foreach ($db as $a=>$b) {
$puerto = explode(" ",$b);
$desc = str_replace($puerto[0]." ","",$b);
$ports[$puerto[0]] = $desc;
}
if(is_numeric(str_replace(".","",$_POST['ip']))) {
foreach($ports as $a=>$b) {
if(conecta($a)) {
pon($a,$b,"open.png");
}
else {
pon($a,$b,"close.png");
}
}
}
else { die("La ip debe contener solamente numeros."); }
function conecta ($port) {
$conexion = @fsockopen($_POST['ip'],$port,$errno,$errstr,5);
@fclose($conexion);
if($conexion) return 1;
else return 0;
}
function pon ($port,$desc,$img) { ?>
<tr>
<td style="text-align: center; border: 1px solid RED; background: #f7f7f7; padding: 5px;"><img src=" <?php echo $img; ?>" alt="Resultado de análisis" /></td>
<td style="text-align: center; border: 1px solid #e0e0e0; padding: 5px;"> <?php echo $port; ?></td>
<td style="text-align: left; border: 1px solid #e0e0e0; background: BLACK; padding: 5px;"> <?php echo $desc; ?></td>
</tr>
<?php } ?>
</table>
<input type="button" name="imprimir" value="Imprimir" onclick="window.print();" />
puertos.txt
21 FTP (Protocolo de Transferencia de Ficheros)
80 HTTP (Protocolo de Transferencia de HiperTexto) (WWW)
53 DNS (Sistema de Nombres de Dominio)
25 SMTP (Protocolo Simple de Transferencia de Correo)
110 POP3 (E-mail)
443 HTTPS (usado para la transferencia segura de páginas web)
445 Microsoft-DS (Active Directory, compartición en Windows, gusano Sasser, Agobot)
1433 Microsoft-SQL-Server
2427 Cisco MGCP
3306 MySQL sistema de gestión de bases de datos
5400 VNC protocolo de escritorio remoto (usado sobre HTTP)
es.jpg
Completamente de acuerdo con madpitbull_99
Sobran muchos "gurus" en programación que dicen que dominan y luego no saben ejecutar las rutinas y funciones más básicas...
Aportar más y criticar menos.
Por otro lado, volviendo al hilo del tema, por que tiene que ser un escaner online? a lo mejor tendras una razón para ello, no obstante, el mejor escaneador de puertos que conozco es NMAP, no te vale utilizarlo desde consola? por que razón necesitas que sea online? a lo mejor te viene mejor utilizar NMAP, si no lo conoces, es realmente una herramienta altamente recomendable y si ya lo conoces, bueno, ya sabes de que te estoy hablando, entonces insisto con mi pregunta, por que quieres un escaner de puertos online?
Un saludo.
Un buen artista copia ideas, un gran artista roba ideas.No al Copy & Paste
Cita de: adastra en 13 Octubre 2011, 13:45 PM
Por otro lado, volviendo al hilo del tema, por que tiene que ser un escaner online? a lo mejor tendras una razón para ello, no obstante, el mejor escaneador de puertos que conozco es NMAP, no te vale utilizarlo desde consola? por que razón necesitas que sea online? a lo mejor te viene mejor utilizar NMAP, si no lo conoces, es realmente una herramienta altamente recomendable y si ya lo conoces, bueno, ya sabes de que te estoy hablando, entonces insisto con mi pregunta, por que quieres un escaner de puertos online?
Un saludo.
Pasa que si es online, todo los pueden utilizar sin tener que instalar nada, osea es mas accesible.
Saludos.