Gerar lista de IPs em arquivo texto

Publicado por Samuel Souza Almeida (última atualização em 07/12/2009)

[ Hits: 17.043 ]

Homepage: http://stux.no-ip.info

Download listaips.sh




Script para gerar lista de IPs em arquivo texto.

Se você já teve que incluir IP por IP em um arquivo para realizar alguma configuração de qualquer serviço que consulte essa lista, não precisa mais de tanto esforço, basta executar esse script e informar a porção do endereço da rede.

  



Esconder código-fonte

#!/bin/bash
# Samuel Souza Almeida.
# Script para gerar uma lista de ips em um arquivo.txt

DATA=`date +%d%m%Y`
echo
echo
echo "INFORME SOMENTE A PORÇÃO DO ENDEREÇO DE REDE EX: 192.168.0"
echo
echo
echo -n "DIGITE O IP: ==> " 
read IP
for ((i=1; i<255; i++)); do
echo $IP.$i >> /tmp/$DATA-lista_de_ips.txt 
done
echo
echo "O RESULTADO ESTÁ EM /tmp/$DATA-lista_de_ips.txt"
echo

Scripts recomendados

Organização de pastas para trabalhos topográficos.

Monitor do Squid avançado

Alterar o IP da máquina.

Um jogo "jokenpo" usando shell script

Converter arquivos CSV para Ldif


  

Comentários
[1] Comentário enviado por alecgn em 13/02/2010 - 23:38h

Amigo, seu script só funcionaria em redes classe C, onde apenas o último octeto representa os hosts da rede... e no caso de precisarmos gerar IPs de redes de classes A ou B por ex., como ficaria ?
Estou com esse mesmo problema de lógica, estou implementando um programa em C++ que testa se os hosts de um determinado intervalo inicial e final estão "vivos", operacionais, mas desenvolvi apenas para testar hosts em redes classe C, ainda não consegui pensar em uma lógica para redes de outras classes... por favor, se souber responda amigo...

sudo halt

[2] Comentário enviado por alecgn em 14/02/2010 - 23:14h

Olá novamente amigo, acho que achei a lógica correta para a elaboração do script para gerar os IPs de todas as classes de rede (A, B e C)...
Fiz o programa em C++ e ficou assim:

#include <iostream>
using namespace std;

int main()
{
int OCT1, OCT2, OCT3, OCT4; // 4 OCTETOS DE UM ENDEREÇO IP

for (OCT1 = 0; OCT1 <= 255; OCT1++) {
for (OCT2 = 0; OCT2 <= 255; OCT2++) {
for (OCT3 = 0; OCT3 <= 255; OCT3++) {
for (OCT4 = 0; OCT4 <= 255; OCT4++) {
cout << OCT1 << '.' << OCT2 << '.' << OCT3 << '.' << OCT4 << "\n";
}
}
}
}

return 0;
}

A questão agora é que esse programa irá gerar TODOS os possíveis endereços IPs... mas como ficaria para que ao invés de gerar todos, ele lesse um IP inicial e um IP final, e mostrasse como saída apenas os endereços desse intervalo ?
Se voçê souber, por obséquio, aguardo a resposta... Já estou a 2 dias tentando elaborar a lógica...

Um abraço!

[3] Comentário enviado por alecgn em 14/02/2010 - 23:35h

Aff, por favor, desculpe ter mandado em C++...
É que já estou habituado...
Mas dá para compreender a lógica não é ? É só adaptar para Shell-Script depois...

[4] Comentário enviado por piualves em 09/06/2016 - 16:38h

Boa tarde pessoal,

dias atrás precisei fazer um script para escrever toda uma Classe B de endereços IP em um arquivo .txt.
Fiz dessa forma e funcionou bem:

#!/bin/bash
read -p 'DIGITE O IP DA REDE SEM A MÁSCARA /16 [EX: 192.168.0.0]' ip
## read -p ===> opção -p para ler a variável 'ip' no caso acima
for ((i=0; i<=255; i++))
do
for ((j=0; j<=255; j++))
do
echo $(echo "$ip" | cut -d '.' -f 1,2)"."$i"."$j >> /tmp/classe-B.txt
##Escreve linha a linha todos os IPs da Classe B. Utilizando os 2 primeiros octetos digitados pelo usuário. Caso seja necessário, criar mais laços "for" para os outros octetos.
done
done
echo "O resultado estará em /tmp/classe-B.txt"


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts