26 noviembre, 2011

Detectar los equipos conectados a una misma LAN area de red local (ping broadcast en Windows) - Parte I

Recién un lector de este blog me dijo: "Hace ya tiempo que no actualizas el blog, antes los hacías todos los días". Y tiene razón, pero es debido a mi falta de tiempo para preparar y publicar los artículos.
Por eso hoy me animé más y con algo de tiempo libre publico este pequeño artículo que seguro a este amigo mio le solucionará futuros problemas de intrusiones.

En ocasiones durante el mantenimiento de sistemas, necesitamos ver que equipos tenemos conectados a nuestra red local, esto también es útil para saber quien está conectado a tu red Wireless (es decir, "saber si el vecino entra en tu WiFi"). Pues este es un sistema para utilizar direcciones de broadcast. Lógicamente estos pasos los realizaremos en la Shell de Windows "CMD": Tecla Windows+R -> escribimos: cmd -> Enter.

Vamos a utilizar para ello la dirección de red: 192.168.1.1/24 el 24 representaría los bits a '1' de modo que quedaría una IP de clase C con máscara de 255.255.255.0, es decir solo el último octeto para hosts finales menos el 0 que sería la dirección de red, que sería reservada siempre para ese fin, el 1 que sería el gateway o puerta de enlace (no está reservada para este fin pero es casi siempre utilizable y en una red domestica sería la configuración por defecto) y el 255 que sería la dirección broadcast, y está si está reservada para este fin. Por lo tanto, nos quedarían direcciones para hosts finales desde la 2-254 (incluyendo estos).
Antes mencionar que este tip es para OS Windows pero antes explicaré como se realiza en OS Linux, debido a que su uso es más facil.
> En Linux bastaría con abrir una terminal y escribir:
ping 192.168.0.255 -b
Despues solo quedaría tipear un:
arp -a
Ya tendríamos la lista de IP y direcciones MAC (Media Access Control).

> En windows es un poco más "complicado". Ya que no existe la opción de broadcast como tal en el comando ping, y no nos permite ninguna posibilidad dentro de sus argumentos para hacer por ejemplo un: ping 192.168.1.255.
Así que tenemos dos opciones:
Aprendernos de memoria la siguiente linea de código o generar un fichero .bat, (que podremos guardar y ejecutar siempre que deseemos) que contenga esta linea de código:


for /l %i in (1,1,254) do ping -w 50 -n 1 192.168.1.%i
Quién tenga un nivel básico de programción ya sabría interpretar un bucle for. Pero para aquellas personas que no sepan y no se limiten simplemente a copiar/pegar, pasaré a explicar brevemente que hace este script:
for: Realizamos un bucle, para que recorra todas las direcciones IP posibles de nuestra red.
/l: Con este argumento estaríamos especificando que se trataría de un bucle que recorre una sucesión de números que va desde una inicio hasta un fin.
%i: El % inicia una variable que en este caso le llame i.
in: marcamos los parámetros que queremos que se recorran del bluque for.
(1,1,254): Los parámentros están entre paréntesis y separados por coma en un orden especifico: (inicio, paso, fin). Por lo tanto, en este caso recorrerá desde el número 1 hasta el 254.
do: Indicamos el comando DO para determinal lo que queremos que recorra.
ping -w 50 -n 1: Realizará un ping con (-n 1) tan solo 1 respuesta de echo y con (-w 50) un tiempo de solicitud de 50 milisegundos.
192.168.1.%i: La dirección IP que recorrerá el for indicándole que el %i (colocada en el último octeto) es la variable que tiene que ir recorriendo hasta el limite marcado en los parámetros del IN (254).

Luego realizamos un:
arp -a
Y nos mostrará todas las entradas IP y address MAC en nuestra tabla ARP (Address Resolution Protocol).

* Entradas relacionadas:
Detectar los equipos conectados a una misma LAN area de red local (ping broadcast en Windows) - Parte I
DiLAN: Detectar los equipos conectados a una misma red local - Parte II
Entradas Relacionadas