2011-03-24 13:27:13 +0000 2011-03-24 13:27:13 +0000
228
228

¿Cómo puedo listar todas las IPs de la red conectada, a través de la Terminal preferentemente?

Usando Ubuntu 10.10, me preguntaba si había un comando de línea de comando que pudiera listar todas las IPs de los dispositivos conectados a la red.

Usaría esto por ejemplo, para listar todas las computadoras conectadas a mi red doméstica. Lo ideal sería que fuera de línea de comandos, ya que lo ejecutaré desde C++.

¿Alguna idea?

Respuestas (8)

247
247
247
2011-03-24 13:37:18 +0000

Revisa el comando arp-scan - probablemente tendrás 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. Puedes encontrar tu dispositivo con:

ifconfig
115
115
115
2011-03-24 13:38:16 +0000

Usa nmap. ejemplo: nmap -sn 10.10.10.0/24 El caché del arp sólo te dirá aquellos con los que has tratado de contactar recientemente.

20
20
20
2011-03-24 13:33:14 +0000

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 del hombre para arp :

arp with no mode specifier will print the current content of the table.
-e : Use default Linux style output format (with fixed columns).
16
16
16
2013-05-17 18:45:14 +0000

Si su red es 192.168.0.0/24, haga un archivo ejecutable con el siguiente código; Cambie el 192.168.0 por 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
13
13
2013-09-08 18:56:24 +0000

Intenta instalar nmap (sudo apt-get install nmap) y escribe nmap 192.168.1.0/24 sustituyendo 192.168.1 con las tres primeras partes de tu dirección ip (averígualo usando ip addr).

También puedes obtener un mapa un poco menos preciso (según mi experiencia) de una red ejecutando ping 192.168.1.255 (de nuevo sustituyendo 192.168.1), que debería emitir un ping a cada máquina de la red, pero, según mi experiencia, no siempre funciona correctamente.

3
3
3
2016-10-30 20:33:12 +0000

Se encontró lo siguiente en un nexo usando tmux ya que arp-scan no está en el repo pero nmap vino pre-instalado, muestra sólo las direcciones ip:

nmap -sn 192.168.1.1-254/24 | egrep "scan report" | awk '{print $5}'
1
1
1
2016-10-20 10:32:13 +0000

Para una lista más compacta de los dispositivos conectados:

nmap -sL 192.168.0.* | grep \(1

Explicación.

nmap -sL 192.168.0.* listará todas las IPs de 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 empiezan con el paréntesis ( y el dígito 1, filtramos eso con | grep \(1 (se necesita una barra invertida para escapar del paréntesis)

Quirk Cuidado con que si dos dispositivos tienen el mismo nombre, nmap mostrará sólo el que estaba conectado al router last

0
0
0
2018-07-06 10:04:06 +0000

Elaborando la respuesta de Anders Larrson -

#!/bin/bash
function scan ()
{
    for ip in $1.{1..254}; do
        ping -c 1 -W 1 $ip &
    done | sed -nE 's:^.* from ([0-9.]+).*time=(.*s)$: ():p'
}

if [$1]; then
    for baseip; do
        scan $baseip
    done
else
    scan 192.168.1
fi