Você precisará do seu endereço IP externo se quiser se conectar remotamente ao seu computador. Encontrá-lo manualmente é fácil, mas veja como encontrá-lo em um script Linux.
Índice
Endereços IP internos e externos
Endereços de protocolo da Internet são usados para identificar dispositivos em uma rede. Eles são um rótulo exclusivo na rede, atribuído a um único dispositivo. Se outro dispositivo quiser enviar dados para esse dispositivo, poderá fazê-lo usando seu endereço IP.
Seu modem de banda larga possui um roteador de rede integrado que direciona o tráfego de rede de um dispositivo para outro. É também a autoridade local que aloca endereços IP aos dispositivos quando eles ingressam na rede. Ele também mantém uma tabela de nomes de rede e endereços IP. Isso permite que você dê nomes significativos aos computadores da sua rede, porque – para humanos – é mais fácil trabalhar com nomes do que listas de números.
Dispositivos na Internet também possuem um endereço IP. Alguns deles também têm nomes, como sites. Os provedores de serviços de nomes de domínio procuram nomes de domínio de sites e os trocam por endereços IP automaticamente.
Seu modem de banda larga recebe seu próprio endereço IP externo ou voltado para a Internet pelo seu provedor de serviços de Internet (ISP). Independentemente do número de dispositivos que você tenha em sua casa conectados à Internet, todo o tráfego combinado sai por meio desse único endereço IP.
Se você estiver fora da cidade e quiser se conectar a um serviço em execução em um dos computadores da sua casa, precisará usar seu endereço IP externo para fazer isso. Seu roteador precisará ser configurado para encaminhar sua solicitação de conexão para o dispositivo apropriado dentro de sua casa, é claro.
A menos que você pague um pouco mais ao seu ISP todos os meses por um endereço IP estático, seu endereço IP externo poderá mudar de tempos em tempos. A reinicialização do modem de banda larga pode resultar na obtenção de um endereço IP externo diferente. Portanto, se você precisar saber seu endereço IP externo, não poderá verificá-lo apenas uma vez e armazená-lo. Você precisará determinar periodicamente o que é.
Encontrando seu endereço IP externo
Descobrir o seu endereço IP externo significa falar com algo que está fora da sua rede. Ou seja, acessar algo na internet que possa nos fornecer a informação que desejamos. Precisamos perscrutar o vazio e ver o que está olhando para nós. E então peça nosso endereço externo.
Existem duas maneiras de fazer isso. Uma maneira envolve sites. Existem muitos sites que mostram qual é o seu endereço IP externo e muitas outras informações também. Você pode acessá-los em seu navegador ou usar uma ferramenta de linha de comando como curl
essa para fazer solicitações HTTPS .
A outra maneira é usar um comando dedicado como dig
. O dig
comando interroga os servidores DNS para recuperar informações.
Usando um navegador
É claro que usar um navegador não é uma maneira fácil de obter seu endereço IP externo. Mas olhar para um site que oferece esse serviço pode nos fornecer informações úteis. Costumávamos recomendar o ip4.me , mas o site não foi atualizado para HTTPS. Ele ainda usa o HTTP mais antigo e inseguro . O site ainda funciona, mas agora existem alternativas melhores.
O site ifconfig.me fornece um bom conjunto de informações.
Isso está reportando nosso IP externo como 178.238.11.140. Percorrendo a página da web, você encontrará uma lista de comandos que pode usar para recuperar informações do site.
Os exemplos que eles dão são úteis curl
para interrogar o site. Então, vamos dar uma olhada em como usarcurl
.
Usando ondulação
Nas nossas máquinas de teste, o Fedora 37 já estava curl
instalado. Precisávamos instalá-lo em nossos computadores Ubuntu e Manjaro.
Para instalá-lo no Ubuntu digite:
sudo apt instalar curl
O comando no Manjaro é:
sudo pacman -S curl
Podemos tentar isso com o primeiro comando listado na ifconfig.me
página web.
enrolar ifconfig.me
Nosso endereço IP externo é recuperado e exibido na janela do terminal. A saída é básica. Não há sequer um caractere de nova linha impresso após a string. O prompt de comando é confrontado com o endereço IP.
Este comando funciona porque retornar o endereço IP é a ação padrão do site. Se a ação padrão mudar, poderemos receber um resultado diferente. Para atender a isso, podemos especificar que estamos solicitando nosso endereço IP adicionando o identificador “ip” ao URL.
curl ifconfig.me/ip
Isso retorna o endereço IP como antes.
Isso ilustra o problema de usar um site como fonte do seu endereço IP. Os sites podem fechar ou mudar a forma como operam ou o formato das informações retornadas. Essas alterações farão com que os scripts que dependem desses sites falhem ou se comportem de maneira imprevisível.
Usar um recurso respeitável e confiável como um servidor DNS é uma maneira mais robusta de obter seu IP externo. Para consultar um servidor DNS, precisamos usar o comando dig.
Usando o comando dig
Desta vez, dig
foi instalado no Fedora e no Ubuntu, e só tivemos que instalá-lo no Manjaro.
O comando é o pacman
comando usual, então não há surpresas, mas o nome do pacote não é o que você esperava.
sudo pacman -S ferramentas de ligação
Para descobrirdig
nosso endereço IP externo, precisamos apontá-lo para um servidor DNS. Estamos usando o servidor OpenDNS, fornecido pela Cisco .
Precisamos especificar o nome do servidor DNS que queremos usar, precedido por uma arroba “@”. Também precisamos nomear o tipo de registro que desejamos recuperar. Neste caso é “myip”. A +short
opção garante que obteremos uma resposta concisa e não detalhada.
cavar @resolver1.opendns.com myip.opendns.com +short
Desta vez, nosso endereço IP tem um caractere de nova linha impresso depois dele. Como veremos, isso é impresso após a string do endereço IP, não é parte integrante da string em si.
Usando isso em um script
Há muitos motivos pelos quais você pode querer saber seu endereço IP externo dentro de um script. Talvez você tenha um script que monitora se o seu endereço IP externo foi alterado e notifica quando isso ocorre. Ou talvez um servidor notifique seus clientes quando seu endereço for alterado. Quaisquer que sejam os seus motivos, podemos implementar os comandos que usamos na linha de comando dentro de um script com bastante facilidade.
Para recuperar nosso endereço IP externo e atribuí-lo a uma variável , precisamos apenas agrupar o comando dentro de uma substituição de comando, $(...)
e atribuí-lo a uma variável, como esta:
variável=$(...)
O comando entre parênteses é executado e o valor de retorno é substituído pela expressão. Neste exemplo, o comando é simplificado para “variável=valor de retorno”.
Aqui está em um script. Adicionamos a -s
opção (silencioso) ao curl
comando para evitar que ele relate o progresso da recuperação de dados.
#!/bin/bashextaddr=$(curl -s ifconfig.me)
echo "O endereço IP externo é $ extaddr (de cURL)"
Copie este script para um editor, salve-o como “getex1.sh” e torne-o executável com o chmod
comando .
chmod +x getex1.sh
Vamos executar o script e ver o que obtemos.
./getex1.sh
Para fazer o mesmo com a opção mais robusta de usar um servidor DNS em vez de um site, basta substituir o curl
comando por dig
aquele.
#!/bin/bashextaddr=$(dig @resolver1.opendns.com myip.opendns.com +short)
echo "O endereço IP externo é $extaddr (de dig)"
Salve isso como script “getex2.sh” e torne-o executável com chmod
.
chmod +x getex2.sh
Vamos executar este script.
./getex2.sh
Podemos ver na saída dos dois scripts que apesar do comando dig
imprimir um caractere de nova linha na linha de comando, no script não há nenhuma nova linha adicionada à extaddr
variável.
Busque confiabilidade
É sempre mais seguro usar um serviço reconhecido, confiável e com um formato de saída previsível do que usar um site “não oficial”. Como tudo mais na internet, dê uma boa olhada em quem você está obtendo suas informações.