[Shell] Récupérer son IP publique

Dernière mise à jour le 3 novembre 2009 à 13:58 par marlalapocket
Publié par asevere

Finalité


Pour plusieurs raisons, on peut avoir besoin de récupérer son adresse IP publique dans un script.
Le problème qui se pose alors si l'on est sur un LAN, est de trouver cette IP sans interventions humaine.

Mise en œuvre


Le moyen le plus simple que j'ai trouvé jusqu'à présent est une simple commande recherchant une ip dans une page web choisie :
GET www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p'
ou
lynx --source www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p'
ou encore
w3m -dump http://www.monip.org/ | awk -F': ' '/IP/ { print $2 }'

Merci à dubcek pour la solution avec "w3m" (voir ce thread)

Explications


GET


La commande GET (lwp-request) se trouvre dans la libwww de Perl (package perl-libwww-perl-version).
Comme son nom l'indique elle fait un GET sur une page, cela renvoie le code source de la page.

Lynx


Lynx est un navigateur en mode texte présent dans la plupart des distributions Linux, plus simple à installer que lwp-request (Perl) si besoin.

Sed


La commande sed :
  • les paramètres
    • -n : restreint l'affichage aux lignes invoquées (lié au paramètre "p")
    • -r : support des expressions régulières étendues
    • -e : expression
    • s///: indique une substitution
    • p : le résultat est affiché (en corrélation avec le paramètre "n")
    • le motif
    • ^.*(motif_ip).*$ : recherche d'une ligne contenant une adresse IP (cf : Récupérer une adresse IP )
    • \1 : ce qui se trouve entre parenthèses peut être adressé dans la suite de l'expression par \1.


La ligne contenant l'adresse IP est donc remplacée par l'adresse IP elle même ;)

A vous de trouver quoi faire du résultat !
Meilleures réponses pour « Récupérer son IP publique » dans :
Changer son adresse IP Voir Problème Chez Orange, en connexion Wi-Fi, comment changer d'adresse IP sans télécharger de logiciel ? Solution Il est impossible de changer son IP publique Pour changer d'IP dans le réseau local en dhcp Démarrer > Exécuter (ou Windows +...
Comment changer son adresse IP ? VoirDeux cas possibles Connaître son IP Changer d'IP (cas d'une IP dynamique) Solution alternative : masquer son IP L'adresse IP est une série de chiffres, soit: L'adresse IP que vous utilisez pour vous connecter au routeur (Réseau...
[RegExp] Récupérer une adresse IP VoirFinalité Mise en œuvre Explications Interprétation du motif Récupérer une adresse IP Finalité Pour récupérer une IP dans un fichier texte, fichiers journaux, pages web, etc. Mise en œuvre L'expression régulière suivante combinée à la...
Comment connaitre son adresse IP publique ? Voiripconfig (sous Windows) ou ifconfig (sous Linux) vous donneront votre adresse IP. Mais si vous êtes derrière un routeur qui fait du NAT, cela ne correspondra pas à votre adresse IP publique. Pour cela, il faut utiliser des sites externes. Voici...