Achar ip válido e jogar para uma variável

Publicado por Cesar Toro em 21/03/2007

[ Hits: 10.380 ]

 


Achar ip válido e jogar para uma variável



Estava atrás de um script para descobrir o ip válido de minha placa eth0 e os que achei retornaram um erro, então desenvolvi este pequeno script que pode ser executado como 1 linha de comando também:

- Guardando IP num arquivo /tmp/ipvalido

ifconfig > /tmp/ifconfig.tmp; TEMP=`cat /tmp/ifconfig.tmp | grep inet | awk '{print $3}'`; IPVALIDO=`echo $TEMP | awk '{print $1}'`; echo $IPVALIDO | tee /tmp/ifconfig.tmp; mv /tmp/ifconfig.tmp /tmp/ipvalido

- Apenas pegando o IP

ifconfig > /tmp/ifconfig.tmp; temp=`cat /tmp/ifconfig.tmp | grep inet | awk '{print $3}'`; ipvalido=`echo $temp | awk '{print $1}'`; echo $ipvalido; rm -rf /tmp/ifconfig.tmp

Nota: os 2 scripts devem ser executados em uma única linha de comando, mas pode-se desmembrar facilmente e transformar num script substituindo-se os ";" por uma quebra de linha e jogar num arquivo de texto, como no exemplo abaixo:

- Guardando IP num arquivo /tmp/ipvalido (Script)

#!/bin/bash

ifconfig > /tmp/ifconfig.tmp
TEMP=`cat /tmp/ifconfig.tmp | grep inet | awk '{print $3}'`
IPVALIDO=`echo $TEMP | awk '{print $1}'`
echo $IPVALIDO | tee /tmp/ifconfig.tmp
mv /tmp/ifconfig.tmp /tmp/ipvalido

- Apenas pegando o IP

ifconfig > /tmp/ifconfig.tmp
temp=`cat /tmp/ifconfig.tmp | grep inet | awk '{print $3}'`
ipvalido=`echo $temp | awk '{print $1}'`
echo $ipvalido
rm -rf /tmp/ifconfig.tmp
Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Variável de numero inteiro ou float

Trabalhando com parâmetros em Shell Script

Como exibir números com um largura fixa de caracteres, complentando com zeros a esquerda

Site para montar regras de iptables

Exportar variáveis de um script no mesmo sub-shell

  

Comentários
[1] Comentário enviado por DondaJr em 03/09/2007 - 15:50h

Legal kra.. achei bacana!!! Parabens

[2] Comentário enviado por chmod000 em 20/09/2007 - 15:40h

Cara,
uma forma mais fácil de vc pegar seu ip válido seria assim:

/sbin/ifconfig eth0 | sed -n '2 p' | awk '{print $3}'
Desta forma você não salva ele em lugar algum. Daí entram os comandos de variáveis ou direcionamento para arquivo. Tipo:

IP_VALIDO=/sbin/ifconfig eth0 | sed -n '2 p' | awk '{print $3}'
ou
/sbin/ifconfig eth0 | sed -n '2 p' | awk '{print $3}' > ip_valido


[]'s

[3] Comentário enviado por KzarMaster em 17/10/2007 - 23:55h

Boa... às vezes existem diversas formas de se excutar uma tarefa, umas mais eficientes, outras menos, tudo depende dos recursos que temos à mão...

Só ficou faltando o crase na opção de jogar pra variável, se não dá erro:

IP_VALIDO=`/sbin/ifconfig eth0 | sed -n '2 p' | awk '{print $3}'`

VLW!!!

[4] Comentário enviado por chmod000 em 20/03/2008 - 15:14h

Oooops!

Falha minha mesmo... tens razão! Faltaram as crases. Ahhh essas crases...



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts