Si votre connexion est NAT, est-il possible de voir votre adresse IP externe sans faire de demande Web sortante?
Tout système d'exploitation (Windows, Linux, etc.) est très bien.
networking
nat
ip-address
Axel Persinger
la source
la source
Réponses:
Si votre ordinateur est derrière NAT, il vous est possible de voir l'adresse IP externe de votre routeur, mais vous avez besoin d'un accès administratif au routeur.
Le routeur connaît votre adresse IP externe, donc en accédant à sa page de configuration, vous pouvez trouver cette adresse IP. De cette façon, aucun outil spécialisé n'est requis, à 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).
la source
WANIPConn1/GetExternalIPAddress
, et il vient juste de renvoyer la bonne adresse.Il existe plusieurs façons de fonctionner avec certains NAT, mais rien n'est garanti pour fonctionner partout.
Je pense que uPnP, NAT-PMP et PCP (Universal Plug And Play, NAT Port Mapping Protocol et Port Control Protocol) ont tous des moyens de demander à une passerelle NAT conforme quelle est l'adresse publique, mais tous les NAT ne prennent pas en charge ces protocoles. La prise en charge est plus courante dans les routeurs de passerelle domestique que dans les solutions NAT d'entreprise ou de classe opérateur.
Lorsque vous vous retrouvez derrière un NAT, le seul moyen sûr de voir dans quelle adresse IP publique il traduit votre trafic est d'envoyer du trafic sortant à un hôte public qui rendra compte, d'une manière que le NAT ne traduira pas, ce que l'adresse de votre trafic semble provenir. L'utilisation d'un service Web est un moyen, mais vous pouvez également le faire en, par exemple, SSHing dans une instance de serveur cloud et voir d'où vient
sshd
votre session SSH.la source
Vous pouvez utiliser une requête DNS qui, je crois, ne rentrerait pas dans la catégorie des "requêtes web":
la source
dig +short @8.8.8.8 o-o.myaddr.l.google.com txt | grep edns
. J'ai trouvé la commande ici: groups.google.com/d/msg/public-dns-discuss/uyzmMcHQBE0/…nsslookup
commande échoue pour moi. Je reçoisServer: resolver1.opendns.com
Address: 2620:119:35::35#53
** server can't find myip.opendns.com: NXDOMAIN
dig
car ce n'est pas sous Windows. Bon pointmyaddr
pour Google cependant, je n'en étais pas conscient! Je suppose que l'nslookup
équivalent de Windows seraitnslookup -type=txt o-o.myaddr.l.google.com ns3.google.com
nslookup
version IP à utiliser pour le transport, mais la façon dont OpenDNS le fait signifie que vous devez le faire. Sans cela, vous devrez prédire quelle version IPnslookup
utilisera pour le transport et demander A ou AAAA en conséquence. Si vous êtes coincé avecnslookup
vous pouvez utiliser un autre fournisseur tel que Google. Cependant, vous obtenez toujours une seule version de protocole dans la réponse et vous ne pouvez pas choisir laquelle.nslookup -type=txt o-o.myaddr.l.google.com ns3.google.com
et ça marche en effet. Mais si j'ai à la fois IPv4 et IPv6, cela ne me permettra pas de choisir lequel d'entre eux je pourrai voir. Très probablement, il me montrera l'adresse IPv6, et très probablement je l'utilise parce que je veux connaître l'adresse IPv4 d'un NAT. Pour contourner cela, il faudrait utiliser un service qui a un nom uniquement IPv4 et un nom uniquement IPv6, qui résoudrait également le problème de NAT64.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 dans un réseau qui a plusieurs adresses IP externes et que le routeur quelque part sur la ligne envoie le trafic vers Internet en fonction de certains critères: par exemple, l'adresse IP de destination ou l'heure (peut être un canal de liaison montante est moins cher la nuit ou pour d'autres raisons).
Donc, pour être complète, une notion d '"adresse IP externe" peut nécessiter la définition d'un point de destination auquel votre adresse est externe.
Dans l'exemple ci
Router #2
- dessous, le NAT pourrait être exécuté et envoyer du trafic vers l'une ou l'autre des liaisons montantes et l'hôte de réception pourrait voir une adresse IP externe différente pour leHost
.Ou il se peut qu'une certaine destination (par exemple
host1.example.com
) passe toujours par leUplink A
, et que l'hôte passehost2.example.com
toujours parUplink B
. Ainsi, vos adresses IP externes comme on le voit par ces hôtes seront différentes, à condition queUplink A
etUplink B
sont différents fournisseurs de services Internet.Ainsi, l'envoi de trafic permettra d'obtenir des résultats plus fiables.
la source
Vous pouvez utiliser DNS plutôt que HTTP. Par exemple, vous pouvez utiliser:
Cela affichera l'adresse unicast du serveur DNS que vous utilisez, et s'il prend en charge EDNS, il affichera également votre adresse IP, bien que é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
Si vous souhaitez voir votre adresse IP dans une version de protocole spécifique, vous pouvez utiliser
-6
et-4
:Vous pouvez également utiliser OpenDNS si vous le souhaitez. OpenDNS n'utilise pas d'enregistrements TXT pour cela, mais plutôt des enregistrements A et AAAA, vous devez donc spécifier la version de protocole que vous recherchez:
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 1 2 3 et sur mes propres recherches.
la source
Le Web fait généralement référence à HTTP, si c'est le sens de votre question, alors par exemple, vous pouvez utiliser STUN ( article Wikipedia ) 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 signalée par votre routeur ne soit pas publique. J'ai même rencontré ce scénario sur les connexions en fibre optique dans certains pays, où le FAI donnerait au routeur local une IP privée, qui serait traduit 1: 1 en IP publique plus tard en quittant leur réseau.
Donc, si votre question est "puis-je trouver mon IP publique sans envoyer de paquets hors de mon réseau", vous POURRIEZ dans votre contexte, mais il n'y a pas de solution à 100%.
la source