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

Publicado por Cesar Toro em 21/03/2007

[ Hits: 9.374 ]

 


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

DictConv: Converta dicionários do Babylon para o StarDict

Controle e Automação

Concatene com o Bash e fique contente!

Variável de numero inteiro ou float

Verificar saída de comando. Será que meu comando deu erro?

  

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