Pregunta ¿Cómo puedo listar todas las direcciones IP en la red conectada, a través de Terminal preferiblemente?


Al usar Ubuntu 10.10, me preguntaba si había un comando de línea de comando que pudiera enumerar todas las direcciones IP de los dispositivos conectados a la red.

Utilizaría esto, por ejemplo, para enumerar todas las computadoras conectadas a mi red doméstica. Idealmente, necesita ser línea de comando, ya que lo ejecutaré desde C ++.

¿Algunas ideas?


195


origen


askubuntu.com/questions/82480/... || serverfault.com/questions/72380/... - Ciro Santilli 新疆改造中心 六四事件 法轮功
Más duplicados: 1.  Obtener todas las IP de los dispositivos conectados al mismo enrutador. 2.  Mostrar lista de computadoras en una LAN en Linux - Alexander Malakhov
3.  El mejor método y herramientas para el escaneo local de IP - Alexander Malakhov


Respuestas:


Revisar la arp-scan comando - probablemente tendrá que instalarlo, por ejemplo:

sudo apt-get install arp-scan

http://manpages.ubuntu.com/manpages/hardy/man1/arp-scan.1.html

Y para dar más detalles:

sudo arp-scan --interface=eth0 --localnet

Donde eth0 es tu dispositivo. Puede encontrar su dispositivo con:

ifconfig

217



Perfecto, gracias. Devuelve exactamente el formato que necesito. - Christopher Gwilliams
¡Funciona perfectamente en OSX también! Instalado con Brew, y la interfaz fue en0, en lugar de eth0, pero funciona muy bien. - nthonygreen
Si estás conectado a tu red usando wifi usa wlan0 en lugar de eth0. - Neil
¿Puedes hacer que esto liste nombres de host así como también direcciones IP? - user1527227
Vale la pena señalar que esto no utiliza la memoria caché ARP: realiza un escaneo real. A diferencia de la mayoría de los escaneos nmap, esto no puede cruzar los límites de la capa 3, que generalmente es lo que desea en este escenario. (En otras palabras, está limitado a su subred) - Zenexer


Use nmap. ejemplo: nmap -sn 10.10.10.0/24 El caché de arp solo le dirá aquellos con los que ha intentado contactar recientemente.


104



es 10.10.10.0 mi IP determinada? ¿Qué es 24 en este caso? Gracias. - kolonel
@kolonel Eso es solo un ejemplo. Deberías sustituirlo por tu red. El 24 es "notación de barra" de la máscara de subred. Significa usar 24 bits desde la izquierda. Es equivalente a 255.255.255.0. - Keith
@Keith, ¿sabes cómo encontraré mi dirección de red para usar? ¿O es solo mi IP con 0/24 al final? - TMH
@kolonel:en.wikipedia.org/wiki/Classless_Inter-Domain_Routing - arkod


En Windows esto sería "arp -a"Creo que un equivalente de eso en Linux sería"arp -e".

Esta información se puede encontrar en la página de manual de arp:

arp with no mode specifier will print the current content of the table.
-e : Use default Linux style output format (with fixed columns).

19



Parece que funciona (puede necesitar una reproducción, ya que estoy en una red pública, por lo que solo parece enumerar todos los servidores de la red. - Christopher Gwilliams
Si estoy en una red doméstica, ¿solo enumerará los dispositivos conectados a mi enrutador? ¡Gracias! - Christopher Gwilliams
Ese comando solo mostrará los dispositivos en el caché de arp actual de los hosts y solo serán aquellos con los que el host se haya puesto en contacto recientemente. - Linker3000
Ambos funcionan en Linux, pero arp -a muestra (todos) hosts en estilo alternativo (BSD). Simpy corriendo arp hace lo mismo que correr arp -e porque es el predeterminado - simplegamer


Si tu red es 192.168.0.0/24, crea un archivo ejecutable con el siguiente código; Cambiar el 192.168.0 a su red actual.

#!/bin/bash
for ip in 192.168.0.{1..254}; do
  ping -c 1 -W 1 $ip | grep "64 bytes" &
done

13



Hola Anders ... La red del usuario podría no ser 192.168.0.0/24; Hice una nota. Al formateo del sitio no le gustaba un # desnudo, así que bloqueó el formato del fragmento de código: al ingresar código, use los botones de texto con formato de bloque o preformateados, y revise su respuesta para obtener el formato correcto antes de enviarlo, como carruaje, pestañas, y los espacios podrían haber sido despojados. - Nevin Williams
Además, al suministrar una secuencia de comandos que debe colocarse en un archivo y hacerse ejecutable, en lugar de simplemente cortar y pegar, probablemente sea mejor que especifique esto; puede no ser obvio para algunos lo que se requiere para implementar su solución. - Nevin Williams
Técnicamente, esto solo devolverá hosts que responden al ping. Puede haber hosts que están conectados, pero que no responden a las solicitudes de eco ICMP. Además, uno puede transmitir un paquete a una red completa especificando la dirección de difusión, que es la última dirección en la red IP: ping -c 1 -W 1 192.168.0.255 lograría lo mismo que el bucle for. - Nevin Williams
@NevinWilliams (requerido -b, eliminado -W para esperar más) ping -b -c 1 192.168.0.255 resultado "1 paquete transmitido, 0 recibido, 100% de pérdida de paquete, tiempo 0ms" - Aquarius Power


Intenta instalar nmap (sudo apt-get install nmap) y escribe nmap 192.168.1.0/24 sustituyendo 192.168.1 con las primeras tres partes de su dirección IP (descubra usando ip addr)

También puede obtener un mapa de una red ligeramente menos preciso (en mi experiencia) ejecutando ping 192.168.1.255 (otra vez sustituyendo 192.168.1), cual debería emitir un ping a cada máquina en la red, pero, en mi experiencia, no siempre funciona correctamente.


10



En realidad, ninguna de las respuestas siempre funcionará correctamente. La IP no se diseñó teniendo en cuenta este requisito, y hay cosas como las VLAN privadas que hacen que sea imposible encontrar otros hosts en la misma LAN. - Ron Maupin


Llegó con lo siguiente en un nexo usando tmux como arp-scan no está en el repositorio pero nmap viene preinstalado, muestra solo las direcciones IP:

nmap -sn 192.168.1.1-254/24 | egrep "scan report" | awk '{print $5}'

2





Para una lista más compacta de dispositivos conectados:

nmap -sL 192.168.0.* | grep \(1

Explicación.

nmap -sL 192.168.0.* listará todas las direcciones IP en la subred y marcará aquellas que tengan nombre:

Nmap scan report for 192.168.0.0
Nmap scan report for Dlink-Router.Dlink (192.168.0.1)
Nmap scan report for 192.168.0.2
...
Nmap scan report for android-473e80f183648322.Dlink (192.168.0.53)
...
Nmap scan report for 192.168.0.255

Como todos los registros interesantes comienzan con paréntesis ( y dígito 1, filtramos por eso con | grep \(1 (se necesita barra invertida para escapar del paréntesis)

Capricho
Tenga cuidado de que si dos dispositivos tienen el mismo nombre, nmap mostrará solo el que estaba conectado al enrutador último


0



Si tiene exactamente la misma respuesta para dos preguntas, puede valer la pena considerar marcar las preguntas como duplicadas en lugar de publicar respuestas duplicadas. De esta forma, el conocimiento puede compartirse cuando las preguntas similares se vinculan entre sí. - Mokubai♦
@Mokubai Tienes razón, agregué comentarios al OP. Esto muestra un problema interesante. UN rápido búsqueda descubrió 6 duplicados (este Q y 5 enlaces) en 4 sitios de red (SU, Ask Ubuntu, SF, Unix). ¡Seguro que hay mucho más! ¿Cómo manejo esto? Lo ideal es que cada una de estas 6 publicaciones se vincule con otras 5. Agregar todos estos enlaces a mano claramente no escala. Por lo tanto, por ahora me he vinculado a esta publicación (la mayoría votó al alza). Otro problema es que es imposible marcar Q en AskUbuntu como un duplicado de Q en SU. Hm ... Probablemente, esto ya fue discutido en el meta? - Alexander Malakhov
no funciona para mí en Centos 7, solo enumera todas las direcciones IP posibles en la red sin nombres. arp-scan funcionó para mí. - Jeff