Si votre connexion est liée à la NAT, est-il possible de voir votre adresse IP externe sans faire de requête Web sortante?
Tout système d'exploitation (Windows, Linux, etc.) est correct.
Si votre ordinateur est sous NAT, il vous est possible de voir l'adresse IP externe de votre routeur, mais vous avez besoin d'un accès administrateur au routeur.
Le routeur connaît votre adresse IP externe. Ainsi, en accédant à sa page de configuration, vous pouvez trouver cette adresse IP. Cette méthode ne nécessite aucun outil spécialisé, à l'exception d'un navigateur Web.
Autres protocoles nécessitant un outil pour obtenir les informations:
Comme testé par l'utilisateur @dirkt, toutes les méthodes ne fonctionnent qu'avec IPv4 (sauf éventuellement pour PCP).
Il existe plusieurs façons de travailler avec certains NAT, mais rien ne garantit qu’il fonctionnera partout.
Je crois que uPnP, NAT-PMP et PCP (Universal Plug And Play, NAT protocole de mappage de port et protocole de contrôle de port) permettent de demander à une passerelle conforme NAT adresse publique est, mais tous les NAT ne prennent pas en charge ces protocoles. La prise en charge est plus courante dans les routeurs de passerelle domestiques que dans les solutions d'entreprise ou de classe transporteur NAT.
Lorsque vous vous trouvez derrière un NAT, le seul moyen sûr de savoir en quelle adresse IP publique il traduit votre trafic consiste à envoyer du trafic sortant à un hôte public qui fera rapport, de la même manière que le NAT ne traduira pas, quelle adresse votre trafic semblait provenir. Utiliser un service Web est un moyen, mais vous pouvez également le faire en SSH, par exemple, dans une instance de serveur Cloud et en vérifiant d'où sshd
indique que votre session SSH vient.
Vous pouvez utiliser une requête DNS, qui, à mon avis, ne relève pas de la "requête Web":
nslookup myip.opendns.com resolver1.opendns.com
Je voudrais ajouter un point aux réponses déjà existantes.
Cela dépend également de la complexité du réseau. Il est possible que votre ordinateur se trouve sur un réseau comportant plusieurs adresses IP externes et que le routeur envoie le trafic vers Internet en fonction de certains critères: par exemple, l'adresse IP de destination ou l'heure du jour (peut un canal de liaison montante est meilleur marché la nuit ou pour d’autres raisons).
Ainsi, pour être complète, une notion "d'adresse IP externe" peut nécessiter de définir un point de destination auquel votre adresse est externe.
Dans l'exemple ci-dessous, Router #2
peut exécuter NAT et envoyer du trafic à l'une des liaisons montantes et l'hôte destinataire peut voir une adresse IP externe différente pour la Host
.
Ou bien il est possible qu'une certaine destination (par exemple Host1.example.com
) achemine toujours par le Uplink A
et que l'hôte Host2.example.com
achemine toujours via Uplink B
. Ainsi, vos adresses IP externes, telles qu'elles sont vues par ces hôtes, seront différentes, à condition que Uplink A
et Uplink B
soient des fournisseurs de services Internet différents.
Uplink A Uplink B
------------- -------------
| |
| |
| 192.168.1.1 192.168.50.50 |
| ----------- |
|---------------|Router #2|---------------|
-----------
| 192.168.100.1
|
| 192.168.100.2
-----------
|Router #1|
-----------
| 192.168.200.1
|
| 192.168.200.2
-----------
| Host |
-----------
Ainsi, l'envoi de trafic permettra d'obtenir des résultats plus fiables.
Vous pouvez utiliser DNS plutôt que HTTP. Par exemple, vous pouvez utiliser:
Dig +short TXT o-o.myaddr.l.google.com
Cela montrera l'adresse de monodiffusion du serveur DNS que vous utilisez, et s'il prend en charge EDNS, il affichera également votre adresse IP, même si elle est éventuellement tronquée.
Pour obtenir votre adresse IP complète, vous pouvez contourner votre serveur DNS local et envoyer la demande ci-dessus directement à ns {1,2,3,4} .google.com.
Dig +short TXT o-o.myaddr.l.google.com @ns3.google.com
Si vous voulez voir votre adresse IP dans une version de protocole spécifique, vous pouvez utiliser -6
et -4
:
Dig -6 +short TXT o-o.myaddr.l.google.com @ns3.google.com
Dig -4 +short TXT o-o.myaddr.l.google.com @ns3.google.com
Vous pouvez également utiliser OpenDNS si vous le souhaitez. OpenDNS n'utilise pas les enregistrements TXT pour cela, mais plutôt les enregistrements A et AAAA. Vous devez donc spécifier la version du protocole que vous recherchez:
Dig -6 +short AAAA myip.opendns.com @resolver2.opendns.com
Dig -4 +short A myip.opendns.com @resolver2.opendns.com
Notez que si votre trafic passe par la traduction de protocole, vous pouvez obtenir des résultats différents, voire aucun. Test à partir d'une machine derrière NAT64, j'ai pu voir mon adresse IPv6 avec les commandes ci-dessus, mais pas l'adresse IPv4 du NAT64.
Cette réponse est basée sur ces sources 123 et un peu de recherche personnelle.
Web fait généralement référence à HTTP. Si tel est le sens de votre question, vous pouvez par exemple utiliser STUN ( Wikipedia Article ), qui signifie "Session Traversal Utilities for NAT".
Maintenant, comme cela a été mis en évidence dans un commentaire, vous pouvez avoir plusieurs adresses IP externes. De plus, comme les connexions sans fil sont de plus en plus courantes (chose 4G), il n’est pas impossible que l’adresse IP indiquée par votre routeur ne soit pas publique. J'ai même rencontré ce scénario concernant les connexions par fibre optique dans certains pays, où le fournisseur de services Internet attribuerait au routeur local une adresse IP privée, qui serait ensuite converti en adresse IP publique 1: 1 en quittant son réseau.
Donc, si votre question est "puis-je trouver mon IP publique sans envoyer de paquets hors de mon réseau", vous POUVEZ dans votre contexte, mais il n'y a pas de solution à 100% de preuve.