En mi trabajo hay mucha computadora y quiero hacer una broma. Puedo cerrar la computadora a través de la red, pero encontrar direcciones IP es difícil para mí.
¿Cómo puedo encontrar fácilmente todas las direcciones IP en línea desde 192.168.1.aa a 192.168.1.zz?
networking
Eric Carvalho
fuente
fuente
angry ip scanner
Respuestas:
En general,
nmap
es bastante útil para escanear redes rápidamente.Para instalar nmap, ingrese el siguiente comando en la terminal:
Una vez que la aplicación esté instalada, ingrese el siguiente comando:
Esto le mostrará qué hosts respondieron a las solicitudes de ping en la red entre 192.168.1.0 y 192.168.1.255.
Para versiones anteriores de Nmap, use
-sP
:Para referencias adicionales, vea las siguientes páginas:
Guía de instalación de NMAP
Guía de referencia de NMAP
Es una herramienta muy útil para aprender.
fuente
Si todas las computadoras en su red son Ubuntu o cualquier otra distribución que haga uso de
avahi-daemon
( DNS-SD ), puede obtener una lista detallada de ellas (con nombre de host y dirección IP) haciendo lo siguiente:Si desea conocer todas las direcciones IP utilizadas en su red, puede usar
arp-scan
:Como no está instalado de forma predeterminada, deberá instalarlo con
sudo apt-get install arp-scan
.arp-scan
envía paquetes ARP a la red local y muestra las respuestas recibidas, por lo que muestra incluso los hosts con firewall (que bloquean el tráfico en función de los paquetes IP).fuente
arp-scan
no encuentro todos los dispositivos asociados a mi red inalámbrica. Ahora, por ejemplo,sudo arp-scan 192.168.2.0/24
muestra 2 resultados (.1 y .1), mientras quenmap -sn 192.168.2.0/24
muestra 4 resultados (.1, .2, .3 y .4). Entonces, parece quenmap
es más preciso (sé con certeza que hay 4 dispositivos conectados a la red). ¿Por qué es esto?nmap
.arp-scan
es bueno !Nota para el lector : la respuesta original se publicó hace un tiempo y en el momento en que solo estaba aprendiendo scripting de shell. Consulte la versión revisada a continuación para obtener un script nuevo y mejorado que funciona mucho más rápido.
Respuesta original
nmap
sería mi opción número 1, pero ¿y si no la tiene? La forma de bricolaje sería con un script de ping que atraviese manualmente cada dirección IP posible en la red. Lo que tenemos aquí es solo un bucle while, donde establecemos el último número en la dirección, hacemos un solo ping silencioso a la dirección, verificamos si el comando tuvo éxito o no (y si tuvo éxito, entonces el host obviamente está activo) y unaprintf
declaración. De manera rápida y sucia, me llevó unos 10 minutos escribirlo, pero el tiempo de ejecución puede ser un poco lento.Respuesta revisada
Originalmente publiqué esta respuesta en agosto de 2015. Desde entonces, he aprendido un poco más sobre las secuencias de comandos de shell, y una vez que vi esta secuencia de comandos, pensé que sería una buena idea revisar esta respuesta para agregar algunas mejoras. Aquí hay algunas ideas:
El script es obviamente lento y
ping
espera respuesta del host. Por defecto,ping
para dos RTT, que pueden variar dependiendo de qué tan congestionada esté su red, y hasta donde yo entiendo, el protocolo TCP duplica el tiempo de espera cada vez (al menos de acuerdo con esto ). Entonces podríamos forzar elping
tiempo de espera con-w 1
bandera. Como tenemos 256 direcciones y suponemos 1 segundo para cada dirección, el script tardará aproximadamente 256/60 = 4.27 minutos.Hacer un comando y luego capturar su estado de salida con
$?
no era realmente necesario. Elif ... then;...fi
puede operar en comandos directamente. En otras palabras, es suficiente hacer esto:El
printf
comando se puede reescribir así:Esto es más un cambio estilístico, pero es coherente con la forma en que
printf
funciona y se ve en muchos otros idiomas, con comillas"$NUM"
variables. Citar aquí no es necesario, ya que solo tratamos con números, no necesitamos anticipar la división de palabras debido a que hay espacios en una variable.Se puede lograr una mejora de rendimiento mucho mejor si generamos varios procesos en segundo plano. El guión que se edita a continuación hace exactamente eso. Puse el
ping
yprintf
en una función,pingf
(sí, cursi, lo sé). Ahora, también hay una únicamain
función que realiza el bucle y la llamadapingf
.¿Cuánto mejor funciona eso? No está mal, en realidad, lleva unos segundos.
Cosas a tener en cuenta
fuente
Netdiscover puede ser tu respuesta.
Para instalar a través de la terminal:
ejemplo de uso:
Una IP con direcciones MAC se mostrará en su terminal. Mira la captura de pantalla
espero ayudarte
referencia
fuente
*** buffer overflow detected ***: netdiscover terminated
.fping
es una gran herramienta para escanear múltiples hosts en una red a través de ICMP. Si no está instalado, puede instalarlo de la siguiente manera:fping
envía paquetes ICMP ECHO_REQUEST y marca un host como Up si obtiene ECHO_RESPONSE del host.Por ejemplo, para escanear los hosts de subred
192.168.1.0/24
, puede hacer:Para un número específico de hosts, por ejemplo, de
192.168.1.15
a192.168.1.140
:fping
es altamente configurable, por ejemplo, cuántos paquetes se enviarán, el tiempo de espera de respuesta, el formato de salida, etc.Comprueba
man fping
para tener más idea.fuente