Existe uma maneira de procurar IPs gratuitos na rede? Eu uso, nmap -sP 192.168.1.0/24
mas isso realmente mostra os hosts que estão ativos.
Existe uma maneira de procurar IPs gratuitos na rede? Eu uso, nmap -sP 192.168.1.0/24
mas isso realmente mostra os hosts que estão ativos.
Respostas:
Usar o Nmap como este é uma maneira bastante precisa de fazer o que você pediu, desde que algumas pré-condições sejam verdadeiras:
Para obter os endereços "disponíveis", você precisa obter a lista de endereços que o Nmap reporta como "inativos". Você pode fazer isso com um simples comando awk:
sudo nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'
Resumo das opções do Nmap usadas:
-v
opção, o Nmap imprime os endereços encontrados como "inativos", além dos que estão "ativos".-sP
, substituí a ortografia mais recente -sn
, que ainda realiza a mesma verificação, mas significa "pular a verificação de porta" em vez da "verificação de ping" enganosa (já que a fase de descoberta do host não significa necessariamente uma verificação de eco ICMP ou Ping )-n
opção ignora as pesquisas reversas de DNS, o que demora um pouco, pois você não está interessado em nomes, mas apenas em endereços IP.-oG
opção informa ao Nmap para produzir um formato grepable , que é mais fácil para o awk processar. O argumento " -
" diz para enviar esta saída para stdout.O comando awk procura "Status: Inativo" e imprime o segundo campo, contendo o endereço IP.
Obviamente, se você tiver acesso às configurações em execução do switch ou às concessões do servidor DHCP, poderá obter essa resposta com muito mais autoridade sem fazer uma verificação que possa disparar alarmes de segurança.
Não tenho certeza sobre o n-map, mas pode-se razoavelmente supor que, se você escrever um script ping que envie 1 ping para cada endereço, todos os hosts que retornarem com "destino inacessível" estarão desocupados e qualquer coisa que retorne "solicitar tempo limite" está ocupado, mas não está respondendo ao ping. A diferença entre as duas respostas é que "destino inacessível" não recebeu uma resposta à sua solicitação ARP. "Tempo limite da solicitação" significa que algo respondeu à solicitação do ARP, mas não ao pacote ICMP.
Aqui está outro inspirado por Anders Larsson
para ip em 172.18.5. {129..254}; faça {ping -c 1 -W 1 $ ip; } &> / dev / null || eco $ ip e pronto | ordenar
O que significa: "Tente executar ping em todos os Ips no intervalo. Se o" ping "falhar, imprima esse IP"
Se você fizer
nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'
Funciona rápido, mas notei que alguns hosts relatados como "Inativos" são na verdade "Ativos"