Hacer ping a todas las IP en LAN

¿Cómo encontraría todos los dispositivos en mi LAN haciendo ping a todos en la terminal? cual seria el codigo

Vea mi respuesta a esta pregunta, específicamente #3 y #4: apple.stackexchange.com/questions/19783/…

Respuestas (3)

Probablemente la forma más fácil de hacer esto es usar una utilidad de línea de comandos llamada nmap. Puede descargar los binarios desde el sitio principal. Alternativamente, si tiene Homebrew instalado, puede usarlo para instalar nmap desde una terminal escribiendobrew install nmap

Una vez que haya descargado e instalado nmap, necesita otra información sobre su LAN: qué bloque de direcciones IP se utilizan para las máquinas en ella. La forma más fácil de averiguarlo es ejecutar ifconfig -a inetdesde una terminal. Cuando escriba eso, su interfaz de red en0 o en1 debería tener una entrada inet ( ignore la dirección inet para lo0 ). Es la dirección IP junto a la que le interesa. Aquí hay un ejemplo de salida de mi máquina:

$ ifconfig -a inet
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    options=3<RXCSUM,TXCSUM>
    inet 127.0.0.1 netmask 0xff000000
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=27<RXCSUM,TXCSUM,VLAN_MTU,TSO4>
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 192.168.0.6 netmask 0xffffff00 broadcast 192.168.0.255
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078

En mi red, mi máquina tiene la dirección 192.168.0.6 en la interfaz en1 .

NOTA : dependiendo de cuántas máquinas tenga en su red, hacer ping en todas ellas podría llevar mucho tiempo. En los siguientes ejemplos, supondré que tiene menos de 256 dispositivos en su red y que todos están en la misma subred, lo que probablemente sea el caso si se trata de una red doméstica.

Si su inet se parece a 192.168. NN (donde cada N es un número entre 0 y 255), el siguiente comando intentará hacer ping a las direcciones 192.168. N .0 a 192.168. N .255 en su red e informe cualquier máquina que responda (debe usar sudo para que nmap pueda usar pings ICMP). Complete las N secciones con el número que coincida con su dirección de red :

sudo nmap -sn -PE 192.168.N.0/24

Por ejemplo, si su dirección de red se informó como 192.168.1.100, debe escribir:sudo nmap -sn -PE 192.168.1.0/24

Si su dirección de red parece 10. NNN , use esto, nuevamente completando las secciones N con sus propios números informados:

sudo nmap -sn -PE 10.N.N.0/24

Y finalmente, si parece 172. NNN , usa esto:

sudo nmap -sn -PE 172.N.N.0/24

Búsqueda de redes más grandes

Si desea expandir su búsqueda para incluir más máquinas, debe ajustar el número después de la barra inclinada en la sección de dirección para el comando. En los tres comandos anteriores, he especificado /24. Eso significa que nmap usará los primeros 24 bits de la dirección IP que especificó y generará automáticamente los otros números (en el primer ejemplo, nmap usa 192.168.N como la parte exacta, ya que cada grupo tiene 8 bits). Entonces, para buscar más direcciones, disminuya el número después de la barra oblicua. /24buscará 256 direcciones, /23buscará 512 direcciones, /22buscará 1024.

Cada vez que disminuye el número en 1, se busca el doble de direcciones; es por eso que disminuirlo demasiado puede hacer que la búsqueda tarde mucho, mucho tiempo. Por ejemplo, para buscar todos los 192.168. Direcciones NN , especificaría 192.168.0.0/16, pero eso tendrá que hacer ping a las máquinas 65536 . Suponiendo 0,25 pings por segundo, tardaría 4 horas en completarse...

En realidad, no sé cuántos pings por segundo puede enviar nmap, pero si intenta un escaneo completo, es posible que deba dejarlo toda la noche, o al menos tomar un café largo.

Esas opciones de nmap

Para que lo sepas, esto es lo que significan las otras opciones de nmap que especifiqué:

-sn (No port scan)

-PE (ICMP ping echo)

Como puede sugerir la opción "sin escaneo de puertos", puede hacer todo tipo de cosas muy divertidas con nmap, como verificar qué puertos están abiertos en una máquina (para saber qué servicios probablemente están ejecutando) e incluso puede adivine qué sistema operativo está ejecutando la máquina de destino con un grado de precisión bastante decente. Si necesita cosas más avanzadas como esa, consulte los documentos de nmap. Me vincularía a ellos, pero aún no soy lo suficientemente conocido como para publicar más de 2 enlaces.

O hacer ping a la dirección de transmisión

ping -c 3 192.168.1.255 | grep 'bytes from' | awk '{ print $4 }' | sort | uniq
o, más corto,ping -c 3 192.168.1.255 | awk '/bytes from/{ print $4 }' | sort | uniq

Si todo está encendido, responde y está en una subred, algo como 'ping 192.168.1' durante unos segundos seguido de 'arp -a' debería brindarle una lista de todos los dispositivos con dirección IP y dirección MAC.