fatmawati achmad zaenuri/Shutterstock.com
Vous pouvez obtenir votre adresse IP externe à partir d’un site Web avec la commande curl telle que « curl -s ifconfig.me ». Cependant, les sites Web peuvent changer. Pour une réponse plus fiable, utilisez plutôt la commande dig comme « dig @resolver1.opendns.com myip.opendns.com +short » pour obtenir votre adresse IP à partir d’un serveur DNS.
Vous aurez besoin de votre adresse IP externe si vous souhaitez vous connecter à distance à votre ordinateur. Le trouver manuellement est facile, mais voici comment le trouver à partir d’un script Linux.
Adresses IP internes et externes
Les adresses de protocole Internet sont utilisées pour identifier les appareils sur un réseau. Il s’agit d’une étiquette unique sur le réseau, attribuée à un seul appareil. Si un autre appareil souhaite envoyer des données à cet appareil, il peut le faire en utilisant son adresse IP.
Votre modem haut débit intègre un routeur réseau qui dirige le trafic réseau sur le réseau d’un appareil à l’autre. C’est également l’autorité locale qui attribue les adresses IP aux appareils lorsqu’ils rejoignent le réseau. Il maintient également une table des noms de réseau et des adresses IP. Cela vous permet de donner des noms significatifs aux ordinateurs de votre réseau car, pour les humains, les noms sont plus faciles à utiliser que les listes de numéros.
Les appareils sur Internet ont également une adresse IP. Certains d’entre eux ont aussi des noms, comme les sites Web. Service de nom de domaine les fournisseurs recherchent les noms de domaine des sites Web et les remplacent automatiquement par des adresses IP.
Votre modem haut débit reçoit sa propre adresse IP externe ou accessible sur Internet par votre Fournisseur de services Internet (FAI). Quel que soit le nombre d’appareils que vous pourriez avoir chez vous et qui sont connectés à Internet, leur trafic combiné passe entièrement par cette adresse IP unique.
Si vous êtes hors de la ville et que vous souhaitez vous connecter à un service exécuté sur l’un des ordinateurs de votre domicile, vous devrez utiliser votre adresse IP externe pour le faire. Votre routeur devra bien sûr être configuré pour acheminer votre demande de connexion vers l’appareil approprié à l’intérieur de votre maison.
À moins que vous ne payiez un petit supplément à votre FAI chaque mois pour une adresse IP statique, votre adresse IP externe peut changer de temps à autre. Le redémarrage de votre modem haut débit peut entraîner l’obtention d’une adresse IP externe différente. Donc, si vous avez besoin de connaître votre adresse IP externe, vous ne pouvez pas simplement la vérifier une fois et la stocker. Vous devrez déterminer périodiquement de quoi il s’agit.
Recherche de votre adresse IP externe
Découvrir votre adresse IP externe signifie parler à quelque chose qui se trouve en dehors de votre réseau. En d’autres termes, accéder à quelque chose sur Internet qui peut nous donner les informations que nous voulons. Nous devons scruter le vide et voir ce qui nous regarde. Et puis demandez-lui notre adresse externe.
Il y a deux façons de procéder. Une façon implique des sites Web. Il existe de nombreux sites Web qui vous montreront quelle est votre adresse IP externe, ainsi qu’un tas d’autres informations. Vous pouvez y accéder dans votre navigateur ou utiliser un outil de ligne de commande comme curl
ça peut faire HTTPS demandes.
L’autre façon est d’utiliser une commande dédiée comme dig
. Le dig
La commande interroge les serveurs DNS pour récupérer des informations.
Utilisation d’un navigateur
Bien sûr, l’utilisation d’un navigateur n’est pas un moyen convivial pour obtenir votre adresse IP externe. Mais regarder un site Web qui offre ce service peut nous donner des informations utiles. Nous avions l’habitude de recommander ip4.me mais le site n’a pas été mis à jour en HTTPS. Il utilise toujours l’ancien, non sécurisé HTTP. Le site fonctionne toujours, mais il existe maintenant de meilleures alternatives.
Le ifconfig.me site fournit un bon ensemble d’informations.
Ceci signale notre IP externe comme 178.238.11.140. En faisant défiler la page Web, vous trouverez une liste de commandes que vous pouvez utiliser pour récupérer des informations sur le site.
Les exemples qu’ils donnent utilisent tous curl
pour interroger le site. Voyons donc comment utiliser curl
.
Utilisation de boucle
Sur nos machines de test, Fedora 37 avait déjà curl
installée. Nous devions l’installer sur nos ordinateurs Ubuntu et Manjaro.
Pour l’installer sur Ubuntu tapez :
sudo apt install curl
La commande sur Manjaro est :
sudo pacman -S curl
Nous pouvons essayer cela avec la première commande répertoriée sur le ifconfig.me
page Web.
curl ifconfig.me
Notre adresse IP externe est récupérée et affichée dans la fenêtre du terminal. La sortie est dépouillée. Il n’y a même pas de caractère de saut de ligne imprimé après la chaîne. L’invite de commande est collée à l’adresse IP.
Cette commande fonctionne car le retour de l’adresse IP est l’action par défaut du site Web. Si l’action par défaut change, nous pourrions obtenir un résultat différent. Pour répondre à cela, nous pouvons spécifier que nous demandons notre adresse IP en ajoutant l’identifiant « ip » à l’URL.
curl ifconfig.me/ip
Cela renvoie l’adresse IP comme avant.
Cela illustre le problème de l’utilisation d’un site Web comme source de votre adresse IP. Les sites Web peuvent fermer ou modifier leur mode de fonctionnement ou le format des informations renvoyées. Ces changements feront que les scripts qui dépendent de ces sites échoueront ou se comporteront de manière imprévisible.
L’utilisation d’une ressource réputée et fiable comme un serveur DNS est un moyen plus robuste d’obtenir votre adresse IP externe. Pour interroger un serveur DNS, nous devons utiliser la commande dig.
Utilisation de la commande dig
Ce temps, dig
était installé sur Fedora et Ubuntu, et nous n’avions qu’à l’installer sur Manjaro.
La commande est habituelle pacman
commande, donc pas de surprises là-bas, mais le nom du package n’est pas ce à quoi vous pourriez vous attendre.
sudo pacman -S bind-tools
Utiliser dig
pour découvrir notre adresse IP externe, nous devons la faire pointer vers un serveur DNS. Nous utilisons le Serveur OpenDNS, qui est fourni par Cisco.
Nous devons spécifier le nom du serveur DNS que nous voulons utiliser, précédé d’un signe « @ ». Nous devons également nommer le type d’enregistrement que nous souhaitons récupérer. Dans ce cas, il s’agit de « myip ». Le +short
option garantit que nous obtenons une réponse concise, et non verbeuse.
dig @resolver1.opendns.com myip.opendns.com +short
Cette fois, notre adresse IP est suivie d’un caractère de saut de ligne. Comme nous le verrons, ceci est imprimé après la chaîne d’adresse IP, ce n’est pas une partie intégrante de la chaîne elle-même.
Utilisation de ceux-ci dans un script
Il existe de nombreuses raisons pour lesquelles vous pourriez vouloir connaître votre adresse IP externe à partir d’un script. Peut-être avez-vous un script qui surveille si votre adresse IP externe a changé et vous avertit lorsque cela se produit. Ou peut-être qu’un serveur avertit ses clients lorsque son adresse change. Quelles que soient vos raisons, nous pouvons implémenter assez facilement les commandes que nous avons utilisées sur la ligne de commande dans un script.
Pour récupérer notre adresse IP externe et l’affecter à une variable, il suffit d’envelopper la commande dans une substitution de commande, $(...)
et affectez-le à une variable, comme ceci :
variable=$(...)
La commande entre parenthèses est exécutée et la valeur de retour est remplacée par l’expression. Dans cet exemple, la commande est simplifiée en « variable=valeur de retour ».
Le voici dans un script. Nous avons ajouté le -s
(silencieux) à l’option curl
commande pour l’empêcher de signaler la progression de la récupération des données.
#!/bin/bash extaddr=$(curl -s ifconfig.me) echo "The external IP address is $extaddr (from cURL)"
Copiez ce script dans un éditeur, enregistrez-le sous « getex1.sh » et rendez-le exécutable avec le chmod
commande.
chmod +x getex1.sh
Exécutons le script et voyons ce que nous obtenons.
./getex1.sh
Pour faire la même chose avec l’option plus robuste d’utiliser un serveur DNS plutôt qu’un site Web, tout ce que nous avons à faire est de remplacer le curl
commande avec le dig
un.
#!/bin/bash extaddr=$(dig @resolver1.opendns.com myip.opendns.com +short) echo "The external IP address is $extaddr (from dig)"
Enregistrez-le sous le script « getex2.sh » et rendez-le exécutable avec chmod
.
chmod +x getex2.sh
Exécutons ce script.
./getex2.sh
Nous pouvons voir à partir de la sortie des deux scripts que malgré la commande dig
l’impression d’un caractère de saut de ligne sur la ligne de commande, dans le script, il n’y a pas de saut de ligne ajouté au extaddr
variable.
Optez pour la fiabilité
Il est toujours plus sûr d’utiliser un service reconnu qui est réputé et dont le format de sortie est prévisible que d’utiliser un site Web « non officiel ». Comme tout le reste sur Internet, regardez bien de qui vous obtenez vos informations.