¿Cómo puedo encontrar todos los dispositivos en mi LAN haciendo ping a todos en la terminal? ¿Cuál sería el código?
¿Cómo puedo encontrar todos los dispositivos en mi LAN haciendo ping a todos en la terminal? ¿Cuál sería el código?
Probablemente, la forma más sencilla de hacerlo es usar una utilidad de línea de comandos llamada nmap. Puede descargar los archivos binarios del sitio principal . Alternativamente, si tiene Homebrew instalado, puede usarlo para instalar nmap desde una terminal escribiendo brew install nmap
Una vez que haya descargado e instalado nmap, necesita otra información sobre su LAN: qué bloque de dirección IP se usa para las máquinas en ella. La forma más fácil de averiguarlo es ejecutar ifconfig -a inet
desde una terminal. Cuando escriba eso, su interfaz de red en0 o en1 debe tener una entrada inet (ignore la dirección de entrada de lo0 ). Es la dirección IP junto a la que está interesado. 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 : según la cantidad de máquinas que tenga en su red, hacer un ping a todas ellas puede llevar mucho tiempo. En los siguientes ejemplos, asumiré 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 ve como 192.168. NN (donde cada N es un número entre 0-255), el siguiente comando intentará para hacer ping a las direcciones 192.168. N .0 a 192.168. N .255 en su red, e informar de cualquier máquina que responda (debe usar sudo para que nmap pueda usar ICMP pings). Rellene las secciones N con el número correspondiente en su dirección inet :
sudo nmap -sn -PE 192.168.N.0/24
Por ejemplo, si su dirección inet se informó como 192.168.1.100, debe escribir: sudo nmap -sn -PE 192.168.1.0/24
Si su dirección inet se ve como 10. NNN , use esto, y complete nuevamente las secciones N con sus propios números informados:
sudo nmap -sn -PE 10.N.N.0/24
Y finalmente, si se ve como 172. N.N.N , usa esto:
sudo nmap -sn -PE 172.N.N.0/24
Si desea ampliar su búsqueda para incluir más máquinas, debe ajustar el número después de la barra diagonal 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 ha especificado 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 es 8 bits). Entonces, para buscar más direcciones disminuya el número después de la barra. /24
buscará 256 direcciones, /23
buscará 512 direcciones, /22
buscará 1024.
Cada vez que reduce el número en 1, se buscan el doble de direcciones: esta es la razón por la cual reducirlo demasiado puede hacer que la búsqueda lleve mucho tiempo. Por ejemplo, para buscar en todas las direcciones 192.168. N.N , debe especificar 192.168.0.0/16
, pero tendrá que hacer ping a las máquinas 65536 . Suponiendo 0.25 pings por segundo, tomaría 4 horas completar ...
En realidad, no sé cuántos pings por segundo puede enviar el nmap, pero si prueba un escaneo completo, es posible que deba dejarlo toda la noche, o al menos tomar un café largo.
Para que sepas, esto es lo que significan las otras opciones de nmap que especifiqué:
-sn (No port scan)
-PE (ICMP ping echo)
Como la opción "sin escaneo de puerto" puede dar una pista, puedes hacer todo tipo de cosas muy divertidas con nmap, como verificar qué puertos están abiertos en una máquina (para saber qué servicios están ejecutando) y Incluso puede adivinar 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, verifique los documentos de nmap. Me vincularía a ellos, pero aún no soy lo suficientemente renombrado como para publicar más de 2 enlaces.
O haga ping a la dirección de transmisión
ping -c 3 192.168.1.255 | grep 'bytes from' | awk '{ print $4 }' | sort | uniq
Si todo está encendido, sensible y en una subred, entonces algo como 'ping 192.168.1' durante unos segundos seguido de 'arp -a' debería darle una lista de todos los dispositivos con dirección IP y dirección MAC.