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

11 comentarios:

  1. Asi da gusto, ya no tengo que preocuparme de que algun "sujeto" o tambien llamado vecino en algunos casos vuelva a querer robarme mi preciado...me arriesgare a llamarlo "IEEE 802.11b" jajajaj ya que ahora los tendre mas controlados.

    Gracias por la entrada Adri

    ResponderEliminar
  2. @xian
    De nada, la publiqué precisamente por tu caso en particular. Y estoy creando un Script Shell en plan "mini-tool" para optimizar y agilizar este tipo de tarea. Cuando lo acabe lo subiré el código para que cualquiera la pueda usar y/o mejorar.

    No solo b, las más utilizadas por los dispositivos aquí en España suelen ser: b/g/n

    Nos vemos ;)

    ResponderEliminar
    Respuestas
    1. Adrian Lois gracias por la info.. siempre miro tus post. por lo que sabes y por no ser egoista te admiro , quisiera consultarte algo en privado no se si te molesta que abuse de tu privacidad y de tu tiempo puedes escribirme xfa al email willsmith707070@gmail.com

      Eliminar
  3. un poco tarde lo vi, pero me ha gustado, ahora lo que falta es saber interpretar las ips arrojadas :S, por ahora me ha devuelto esto:

    Interfaz: 192.168.0.103 --- 0xb
    Dirección de Internet Dirección física Tipo
    192.168.0.1 00-26-5a-ac-fb-46 dinámico
    192.168.0.105 00-30-67-6d-19-f9 dinámico
    192.168.0.255 ff-ff-ff-ff-ff-ff estático
    224.0.0.22 01-00-5e-00-00-16 estático
    224.0.0.252 01-00-5e-00-00-fc estático
    224.0.0.253 01-00-5e-00-00-fd estático
    239.255.255.250 01-00-5e-7f-ff-fa estático
    255.255.255.255 ff-ff-ff-ff-ff-ff estático

    ResponderEliminar
  4. @Anónimo
    Hola, te aconsejo que mires esta entrada:
    http://www.zonasystem.com/2012/01/dilan-detectar-los-equipos-conectados.html

    Es un script en batch, que hice posterior a esta entrada y basándome en esto.

    Espero que este te ayude más. Estoy seguro de que si.

    Un Saludo

    ResponderEliminar
  5. ey, mil gracias. muy bueno ese bat. muy útil tu información, felicitaciones.
    y gracias por tu ayuda. (soy el del post anterior)

    ResponderEliminar
  6. muy bueno che...es lo que andaba buscando..te felicito por lo hecho y compartirlo

    ResponderEliminar
  7. y si quisieramos ampliar el rango a 192.0.0.1 a 192.255.255.255 como hariamos

    ResponderEliminar
  8. Net view no permite ver los hosts conectados de forma inalámbrica.
    Esta entrada se escribió hace tiempo, igualmente todo se resumen en el uso de nmap.
    "nmap -sP 192.168.1.0/24"
    Y listo.

    Saludos.

    ResponderEliminar
  9. Excelente explicación, gracias por compartir tu conocimiento, haré lo mismo con lo aprendido. Saludos

    ResponderEliminar

Entradas Relacionadas