No meu trabalho, há muito computador e quero fazer uma piada. Posso fechar o computador pela rede, mas é difícil encontrar endereços IP.
Como posso encontrar facilmente todos os endereços IP online de 192.168.1.aa a 192.168.1.zz?
networking
Eric Carvalho
fonte
fonte
angry ip scanner
Respostas:
Geralmente,
nmap
é bastante útil para verificar redes rapidamente.Para instalar o nmap, digite o seguinte comando no terminal:
Depois que o aplicativo estiver instalado, digite o seguinte comando:
Isso mostrará quais hosts responderam às solicitações de ping na rede entre 192.168.1.0 e 192.168.1.255.
Para versões mais antigas do Nmap, use
-sP
:Para referências adicionais, consulte as seguintes páginas:
Guia de instalação NMAP
Guia de Referência NMAP
É uma ferramenta muito útil para aprender.
fonte
Se todos os computadores da sua rede forem Ubuntu ou qualquer outra distribuição que utilize
avahi-daemon
( DNS-SD ), você poderá obter uma lista detalhada deles (com nome do host e endereço IP), fazendo:Se você deseja conhecer todos os endereços IP usados na sua rede, pode usar
arp-scan
:Como não está instalado por padrão, você precisará instalá-lo
sudo apt-get install arp-scan
.arp-scan
envia pacotes ARP para a rede local e exibe as respostas recebidas, para mostrar até hosts com firewall (que bloqueiam o tráfego com base em pacotes IP).fonte
arp-scan
não encontra todos os dispositivos associados à minha rede sem fio. Agora, por exemplo,sudo arp-scan 192.168.2.0/24
mostra 2 resultados (.1 e .1), enquantonmap -sn 192.168.2.0/24
mostra 4 resultados (.1, .2, .3 e .4). Portanto, parece quenmap
é mais preciso (sei com certeza que existem 4 dispositivos conectados à rede). Por que é isso?nmap
.arp-scan
é legal !Nota para o leitor : A resposta original foi postada há um tempo atrás e na época em que eu estava apenas aprendendo scripts de shell. Veja a versão revisitada abaixo para obter um script novo e aprimorado com desempenho muito mais rápido.
Resposta original
nmap
seria a minha escolha número 1, mas e se você não a tiver? A maneira DIY seria com um script de ping que percorre cada endereço IP possível na rede manualmente. O que temos aqui é just loop, onde definimos o último número no endereço, fazemos ping único silencioso no endereço, verificamos se o comando foi bem-sucedido ou não (e se foi bem-sucedido, o host está obviamente ativo) e aprintf
instrução. De maneira rápida e suja, levei cerca de 10 minutos para escrevê-lo, mas o tempo de execução pode ser um pouco lento.Resposta revisitada
Originalmente, publiquei essa resposta em agosto de 2015. Desde então, aprendi um pouco mais sobre scripts de shell e, uma vez que vi esse script, pensei que seria uma boa ideia revisar essa resposta para adicionar algumas melhorias. Aqui estão algumas idéias:
O script é obviamente lento e
ping
aguarda resposta do host. Por padrão,ping
para dois RTT, que podem variar dependendo de como sua rede está congestionada, e até onde eu entendo, o protocolo TCP duplica o tempo de espera a cada vez (pelo menos de acordo com isso ). Para que pudéssemos forçar oping
tempo limite com a-w 1
bandeira. Como temos 256 endereços e assumimos 1 segundo para cada endereço, o script levará cerca de 256/60 = 4,27 minutos.Realizar um comando e depois capturar seu status de saída
$?
não era realmente necessário. Oif ... then;...fi
pode operar em comandos diretamente. Em outras palavras, é suficiente fazer isso:O
printf
comando pode ser reescrito da seguinte maneira:Isso é mais uma mudança estilística, mas é consistente com a forma como
printf
funciona e se parece em muitos outros idiomas, com a"$NUM"
variável de citação . Não é necessário citar aqui - como estamos lidando apenas com números, não precisamos antecipar a divisão de palavras devido ao espaço em uma variável.Uma melhoria de desempenho muito melhor pode ser alcançada se gerarmos vários processos em segundo plano. A edição do script abaixo faz exatamente isso. Coloquei o
ping
eprintf
em uma funçãopingf
(sim, nome brega, eu sei). Agora, há também uma únicamain
função que executa o loop e a chamadapingf
.Quão melhor isso funciona? Nada mal, na verdade, leva alguns segundos.
Coisas para manter em mente
fonte
A descoberta de rede pode ser sua resposta.
Para instalar via terminal:
exemplo de uso:
Um IP com endereços MAC aparecerá no seu terminal. Veja a captura de tela
espero te ajudar
referência
fonte
*** buffer overflow detected ***: netdiscover terminated
.fping
é uma ótima ferramenta para varrer vários hosts em uma rede via ICMP. Se não estiver instalado, você pode instalá-lo:fping
envia pacotes ICHO ECHO_REQUEST e marca um host como Up se receber ECHO_RESPONSE do host.Por exemplo, para verificar os hosts da sub-rede
192.168.1.0/24
, você pode:Para um número específico de hosts, por exemplo, de
192.168.1.15
a192.168.1.140
:fping
é altamente configurável, por exemplo, quantos pacotes serão enviados, tempo para aguardar resposta, formato de saída etc.Marque
man fping
para ter mais ideia.fonte