Puis-je obtenir mon adresse IP publique (WAN) sur la ligne de commande? Je suis derrière un routeur (réseau local), avec une adresse IP dynamique attribuée par mon FAI.
J'ai déjà vu des solutions utilisant un service Web externe (tel que ifconfig.me
), mais je veux savoir si je peux le faire sans service externe.
command-line
internet
ip
dynamic-ip
utilisateur61954
la source
la source
Réponses:
En supposant que votre système dispose de 2 périphériques Ethernet,
eth0
eteth1
eteth0
est connecté à votre réseau local, par exemple IP 192.168.1.X et votreeth1
appareil est connecté à votre fournisseur d' accès Internet (WAN) , vous allez vouloir utiliser ce qui suitifconfig
commande pour obtenir votre IP le côté WAN.REMARQUE: les deux premières manières supposent que vous les exécutez sur un ordinateur doté de deux périphériques Ethernet et que l'un d'entre eux est connecté à votre fournisseur de services Internet (modem câble et / ou modem DSL). Dans ce scénario, le périphérique Ethernet (eth1) sera configuré avec votre adresse IP sur Internet (IP WAN).
1er chemin
Vous pouvez également utiliser la
ip
commande.2ème voie
Si vous avez besoin de le savoir à partir d'un système qui se trouve uniquement sur le réseau local, vous pouvez configurer une clé ssh sans phrase secrète et l'ajouter à un compte sur votre ordinateur de réseau local afin qu'il puisse accéder au système à distance avec le même accès au réseau étendu.
3ème voie
Si vous ne parvenez pas à vous connecter à la boîte avec un accès WAN et que vous utilisez un routeur / commutateur domestique tel qu'une boîte Linksys ou Netgear. Vous pourrez peut-être obtenir l'adresse IP de cet appareil via une page d'état HTTP. Je l'ai déjà fait par le passé, quelque chose de similaire à ce qui est décrit dans cet article du forum whatismyip.com .
REMARQUE: Cette approche dépend fortement de votre routeur / commutateur, qu'il s'agisse d'une marque Linksys, Netgear, etc. Chacun aura sa propre page avec l’adresse IP du réseau étendu.
4ème voie
Envoi d'une requête à un site Internet externe qui rendra compte de votre adresse IP WAN.
NOTE: Je sais que la question initiale indiquait qu'ils cherchaient une alternative à cette approche, mais je la mets ici pour que cette réponse couvre toutes les bases.
Des informations supplémentaires sont disponibles ici: HOWTO: Vérifiez votre adresse IP externe à partir de la ligne de commande
la source
eth*
périphériques n'aura l'adresse IP du réseau étendu. À moins que son routeur ne prenne en charge ssh, il a accès, et ifconfig, cela ne fonctionnera pas. Pas de vote négatif, mais juste pour que quiconque essayant de faire cela soit conscient.Si curl est installé sur votre système (la plupart le font), vous pouvez utiliser
la source
Lorsque vous êtes derrière un routeur NAT avec UPNP, vous pouvez utiliser miniupnpc pour détecter une adresse ip wan:
Vous pouvez l'utiliser dans un script, par exemple pour cron comme:
la source
Très probablement, le routeur doit fournir un moyen d'obtenir l'IP externe si aucun service externe ne doit ou ne peut être utilisé (comme d'autres réponses déjà indiquées). Pour les services externes, dans la plupart des autres réponses, un service Web est utilisé. Cette réponse chez Unix SE suggère d'utiliser DNS à la place.
Par exemple,
dig
avec OpenDNS comme résolveur:la source
curl ident.me
car nous nous basons sur un service spécifique (myip.opendns,com
le serveur DNS estRécupérez les informations de votre routeur via ssh ou curl.
J'utilise curl pour demander à dyndns mon adresse IP publique, mais une telle commande ne semble pas applicable pour vous, n'est-ce pas?
curl http://checkip.dyndns.org 2> /dev/null| perl -pe 's,.*Address: (\d+\.\d+\.\d+\.\d+).*,$1,'
la source
Malheureusement, il n’existe aucun moyen de détecter des mécanismes tels que NAT qui n’impliquent pas le contact avec un service distant. La NAT est par nature complètement transparente pour l'utilisateur, à part les services interrompus, et il n'y a pas de protocole standard pour la découverte NAT.
Mais en ce qui concerne les services externes, je dois suggérer celui qui est simple et rapide que j'ai écrit, ident.me, que vous pouvez utiliser à la fois pour IPv4 et IPv6; pour sa forme la plus simple, vous pouvez utiliser
curl ident.me
et l’API complète est documentée sur http://api.ident.me/la source
Si votre routeur prend en charge NAT PMP (protocole de mappage de port), vous pourrez peut-être récupérer votre adresse IP publique à l'aide de natpmp.
Il existe une interface de ligne de commande pour la bibliothèque linux natpmp appelée natpmpc. Sur Ubuntu, c'est dans le paquet natpmp-utils . Mon routeur ne semble pas prendre en charge natpmp. Par conséquent, je ne suis pas certain que l'utilitaire natpmpc renverra votre adresse IP publique.
la source
La commande linux que vous recherchez
ifconfig
suppose que vous êtes directement connecté à Internet.Si ce n'est pas le cas et en utilisant un proxy ou un routage spécial, le moyen le plus simple (comme d'autres l'indiquent) est de se connecter / d'accéder à un autre hôte et de le vérifier à partir de là.
Vous pouvez également discuter de cette question avec l’administrateur de votre système de voisinage convivial.
la source
ifconfig
est obsolète.ifconfig
dernière date de sortie. Regardez maintenant laìproute2
dernière version. Pour une source, voir lartc.org/howto/lartc.iproute2.html#LARTC.IPROUTE2.WHYsed que si vous avez besoin de
la source
curl icanhazip.com