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.
#!/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
[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...
[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
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...
[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"