shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

mostra IP de interfaces


From: Raul Libório
Subject: mostra IP de interfaces
Date: Sat, 31 Jan 2009 20:55:15 -0300

Olá amigos,

Fiz um script simples, mas de grande utilidade (ao menos pra mim :D).
Ele mostra o endereço IP das interfaces conectadas (eth0 por default e
outras com -e INTERFACE) e também o IP externo ( opção -o ).
Como disse, é simples, mas útil, já que a saída é apenas o endereço,
sem todas aquelas informações de máscara, broadcast, MTU, MAC...
Gostaria da ajuda de vocês para melhorar o código. O script (ao menos
aqui no openSUSE 11.1) está funcional.

http://pastebin.com/m6b0d8ca0

# -- Inicio

#!/bin/bash
# 2.1 - Exibe o endereco de todas as interfaces
# 2.0 - Mostra o endereco IP de saida
# 1.0 - Mostra o endereço de eth0
# GPL
# Pastebin: http://pastebin.com/m6b0d8ca0

# -- VARIAVEIS

INT="$1"

MODO_DE_USO="USO:       $( basename $0) [ INTERFACE ]|[ OPCAO ]

    OPCOES:
        -a:             Exibe o endereco IP de todas as interfaces,
                          inclusive o endereco externo
        -e INTERFACE:   Exibe o endereco IP da interface INTERFACE
        -o:             Exibe o endereco IP de saida
        -h|--help       Exibe esta ajuda

  IR - Interface de Rede
  Visualizador simples de endereco de rede - GPL3

Raul Liborio - <address@hidden> | raumaru.blogspot.com/
                www.redesfja.com
"
# -- EXECUCAO

if [ -z $INT ]; then

        ip a | awk "/eth0/"'{print $2}' | tail -1 | cut -d/ -f1
        exit 0

else

IP_EXTERNO(){
        w3m -dump http://ipid.shat.net/iponly/ | sed 's/ //;' | head -1
}
        
        case $INT in

          "--help"|"-h") echo "$MODO_DE_USO"
          exit 0 ;;

          "-v"|"--version") cat $( which $( basename $0 ) ) \
                | awk -F# "/[0-9]/"'{print $2}' | head -1
          exit 0;;

          "-a"|"--all") LANG=POSIX ifconfig | awk "/inet addr:/"'{ print $2  }'\
                | cut -d: -f2; IP_EXTERNO
          exit 0;;

          "-e") ip a show "$2" | awk /inet/'{print $2 }'| \
                head -1 | cut -d/ -f1
          exit 0;;

          "-o") IP_EXTERNO
          exit 0;;

          *) echo "$MODO_DE_USO"
          exit 1;;
        
        esac
fi


#  -- Fim

Desde já, valeu galera =D


--


  |
  |
  + \
  \\.G_.*=.
   `( '/.\|
    .>' (_--.
 _=/d   ,^\
~~ \)-'   '
   / |
  '  '
Raul Libório
UniJorge Redes - www.redesfja.com
rauhmarutsªhotmailºcom
Linux user#4444581

"The bug is on the table."

" Se você tem uma maçã e eu tenho uma maçã e, em seguida, trocarmos as
maçãs, eu e você ainda teremos uma maçã cada um. Mas se você tem uma
idéia e eu tenho uma idéia e trocarmos essas idéias, então cada um de
nós terá duas idéias. "

George Bernard Shaw

Dúvidas: enviar para /dev/null


reply via email to

[Prev in Thread] Current Thread [Next in Thread]