Se sua conexão for NAT, é possível ver seu endereço IP externo sem fazer uma solicitação da web de saída?
Qualquer sistema operacional (Windows, Linux etc.) está bem.
networking
nat
ip-address
Axel Persinger
fonte
fonte
Respostas:
Se o seu computador estiver atrás do NAT, é possível ver o endereço IP externo do seu roteador, mas você precisa de acesso administrativo ao roteador.
O roteador conhece seu endereço IP externo; portanto, acessando sua página de configuração, você pode encontrar esse endereço IP. Dessa forma, não é necessária nenhuma ferramenta especializada, exceto um navegador da Web.
Outros protocolos que requerem uma ferramenta para obter as informações:
Conforme testado pelo usuário @dirkt, todos os métodos funcionam apenas com IPv4 (exceto possivelmente para PCP).
fonte
WANIPConn1/GetExternalIPAddress
e ele retornou com êxito o endereço correto.Existem algumas maneiras de trabalhar com alguns NATs, mas nada que funcione em todos os lugares.
Acredito que uPnP, NAT-PMP e PCP (Universal Plug And Play, NAT Port Mapping Protocol e Port Control Protocol) todos têm maneiras de perguntar a um gateway NAT compatível qual é o endereço público, mas nem todos os NATs suportam esses protocolos. O suporte é mais comum em roteadores de gateway doméstico do que em soluções NAT corporativas ou de nível de operadora.
Quando você se encontra atrás de um NAT, a única maneira certa de ver em qual endereço IP público está traduzindo o tráfego é enviar algum tráfego de saída para algum host público que reportará, de uma maneira que o NAT não traduza, o que endereço de onde seu tráfego parecia vir. O uso de um serviço baseado na Web é uma maneira, mas você também pode fazê-lo, digitando, SSHing em uma instância de servidor em nuvem e vendo de onde
sshd
vem a sua sessão SSH.fonte
Você pode usar uma solicitação DNS, que eu acredito que não se enquadra na categoria "solicitação da web":
fonte
dig +short @8.8.8.8 o-o.myaddr.l.google.com txt | grep edns
. Encontrei o comando aqui: groups.google.com/d/msg/public-dns-discuss/uyzmMcHQBE0/…nsslookup
comando falha para mim. Eu receboServer: resolver1.opendns.com
Address: 2620:119:35::35#53
** server can't find myip.opendns.com: NXDOMAIN
dig
pois não está no Windows. Bom pontomyaddr
para o Google, porém, eu não estava ciente disso! Eu acho que onslookup
equivalente do Windows serianslookup -type=txt o-o.myaddr.l.google.com ns3.google.com
nslookup
sobre qual versão de IP usar no transporte, mas a maneira como o OpenDNS faz isso significa que você precisa. Sem isso, você teria que prever qual versão IPnslookup
usará para transporte e solicitar A ou AAAA de acordo. Se você está preso,nslookup
pode usar outro provedor como o Google. No entanto, você ainda recebe apenas uma versão do protocolo na resposta e não pode escolher qual.nslookup -type=txt o-o.myaddr.l.google.com ns3.google.com
e isso realmente funciona. Mas se eu tiver o IPv4 e o IPv6, isso não me permitirá escolher qual deles eu vejo. Muito provavelmente ele me mostrará o endereço IPv6 e provavelmente o estou usando porque quero saber o endereço IPv4 de um NAT. Para contornar esse problema, seria necessário usar um serviço que tenha um nome somente IPv4 e um nome somente IPv6, que também resolvesse o problema do NAT64.Gostaria de acrescentar um ponto às respostas já existentes.
Também depende da complexidade da rede. É possível que o seu computador esteja localizado em uma rede que possua vários endereços IP externos e o roteador em algum ponto da linha envie o tráfego para a Internet com base em alguns critérios: por exemplo, endereço IP de destino ou hora do dia (pode ser um canal de ligação ascendente é mais barato à noite ou por outros motivos).
Portanto, para ser completo, uma noção de "endereço IP externo" pode exigir a definição de um ponto de destino para o qual seu endereço está sendo externo.
No exemplo abaixo,
Router #2
poderia executar o NAT e enviar tráfego para os uplinks e o host receptor poderia ver um endereço IP externo diferente para oHost
.Ou pode ser que um determinado destino (por exemplo
host1.example.com
) sempre roteie através doUplink A
e o hosthost2.example.com
sempre roteie viaUplink B
. Portanto, seus endereços IP externos, como vistos por esses hosts, serão diferentes, desde queUplink A
eUplink B
sejam ISPs diferentes.Portanto, o envio de tráfego permitirá obter resultados mais confiáveis.
fonte
Você pode usar o DNS em vez do HTTP. Por exemplo, você pode usar:
Isso mostrará o endereço unicast do servidor DNS que você está usando e, se ele suportar EDNS, também mostrará seu endereço IP, embora possivelmente truncado.
Para obter seu endereço IP completo, você pode ignorar o servidor DNS local e enviar a solicitação acima diretamente para ns {1,2,3,4} .google.com
Se você deseja ver seu endereço IP em uma versão de protocolo específica, pode usar
-6
e-4
:Você também pode usar o OpenDNS, se preferir. O OpenDNS não usa registros TXT para isso, mas sim registros A e AAAA, então você deve especificar qual versão de protocolo está procurando:
Observe que, se seu tráfego passar pela conversão de protocolo, você poderá obter resultados diferentes ou nenhum. Testando a partir de uma máquina atrás do NAT64, pude ver meu endereço IPv6 com os comandos acima, mas não o endereço IPv4 do NAT64.
Esta resposta é baseada nessas fontes 1 2 3 e em algumas pesquisas minhas.
fonte
A Web geralmente se refere ao HTTP, se esse é o significado da sua pergunta, por exemplo, você pode usar STUN ( artigo da Wikipedia ), que significa "Utilitários de transferência de sessão para NAT".
Agora, como foi destacado em um comentário, você pode ter vários IPs externos. Além disso, como as conexões sem fio estão se tornando mais comuns (coisa 4G), não é impossível que o endereço IP relatado pelo seu roteador não seja público. Até conheci esse cenário em conexões de fibra óptica em alguns países, onde o ISP daria ao roteador local um IP privado, que seria traduzido 1: 1 para um IP público mais tarde ao sair da rede.
Portanto, se sua pergunta for "posso encontrar meu IP público sem enviar pacotes para fora da minha rede", você PODE no seu contexto, mas não há uma solução 100% à prova.
fonte