Dica – Como saber o IP publico via terminal Linux

9 Comentários

A maioria das máquinas ligadas a Internet estão “atrás” de NAT! Devido às limitações a nível de endereçamento publico IPv4, a maioria das máquinas tem configurado um endereço privado e quando precisam de “sair” para a Internet, o seu endereço é traduzido para um endereço publico. Esta técnica é idêntica à utilizada  numa central telefónica…quando estamos na rede local usamos normalmente extensões (ex.1010)  mas quando pretendemos ligar para o exterior a nossa chamada sai com um número telefónico valido (ex.21123456).

Voltando às redes de dados, quando estamos num terminal Linux, como poderemos nós saber com que IP publico a nossa máquina sai para a Internet?

nat_01

Antes de ensinar como visualizar o endereço IP publico de uma máquina vamos apenas rever qual a diferença entre um endereço privado e um endereço publico.

Basicamente as máquina quando estão ligadas em rede possuem um endereço IP configurado (seja ele IPv4 (normalmente) ou IPv6), de forma a poderem ser alcançadas por outras máquinas.

Os endereços públicos são geridos por uma entidade reguladora, muita das vezes são pagos e permitem identificar univocamente uma máquina (PC, routers,etc) na Internet. O organismo que gere o espaço de endereçamento público (endereços IP “encaminháveis”) é a Internet Assigned Number Authority (IANA). De referir que com o IPv6 o espaço de endereçamento é bastante superior quando comparado ao espaço de endereço oferecido pelo IPv4.

Os endereços privados, não nos permitem acesso directo à Internet, no entanto esse acesso é possível sendo necessário recorrer a mecanismos de NAT (Network Address Translation) que traduzem o nosso endereço privado num endereço público.

ip_00

Actualmente, quem pretender saber qual o endereço publico associado à sua máquina num determinada momento basta aceder a um dos vários serviços disponibilizados na Internet (ex: meuip, whatismyip, entre outros). E se estivermos num terminal Linux?

Como ensinamos já em vários artigos sobre Linux, se pretendermos saber a configuração IP de uma máquina linux podemos usar o comando ifconfig. No entanto, através deste comandos não conseguimos saber a informação relativa ao endereço publico. Para tal podemos usar a biblioteca  curl.

A biblioteca curl é extremamente potente uma vez  que permite a transferência de ficheiros via URL e suporta os seguintes protocolos: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET e TFTP.

Como instalar o curl?

Caso não tenha o curl instalado pode usar o seguinte comando:

Debian/Ubuntu

sudo apt-get install curl

RedHat/Fedora/CentOS

yum install curl

Depois de instalado, basta executar o seguinte comando:

curl ifconfig.me

Como output é devolvido o endereço publico associado à nossa máquina. Esperamos que esta dica vos seja útil. Num dos próximos artigos da rubrica Comandos Linux para totós, iremos abordar com mais detalhe a fantástica biblioteca curl.

Partilhar:
Tags:

Comentários

9

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Sérgio Ferreira
    Sérgio Ferreira

    Muito útil!

    Obrigado.

  2. Avatar de nuno
    nuno

    Boas pessoal!
    Qual é a melhor aplicação que vocês conhecem para saber o tráfego instantâneo de um ip, em linux? Se me pudessem ajudar agradecia muito, é que os programas que uso ou não funcionam correctamente ou então por uma razão qualquer não funcionam (ou eu não os sei usar lol).

  3. Avatar de Moises
    Moises

    quem usa os “fantasticos” dns dynamicos de certeza que conhece o seguinte checkip.dyndns.org

    em qualquer command line(win/lnx/mac)
    telnet checkip.dyndns.org 80

    1. Avatar de Rafael Leandro
      Rafael Leandro

      como funciona amigo?

  4. Avatar de Courela
    Courela

    Um tracert a um endereço de um site qualquer também pode resolver a questão, mas não é 100% garantido.

  5. Avatar de Miguel Ribeiro

    Funciona, mas é muito muito lento este comando.
    Este é bastante mais rápido:
    wget -q -O – http://checkip.dyndns.com|sed -e “s/.*Current IP Address: //” -e “s/<.*$//"

  6. Avatar de Nelson
    Nelson

    Belo truque! 😀