Les Allergies
Alimentaires

Shell - Récupérer son IP publique


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 !
Publié par asevere - Dernière mise à jour le 3 novembre 2009 à 13:58 par marlalapocket
Ce document intitulé « Shell - Récupérer son IP publique » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Suggestions
  •  Shell - Récupérer son IP publique
  •  Comment connaitre son adresse IP ? » Fiches pratiques : Les quelques commandes ci-dessous vous permettront de trouver l'adresse IP de votre ordinateur. Adresse IP publique et adresse IP privée Connaître son adresse IP privée Sous Windows 2000 / Windows XP / Windows Vista Sous Windows 95 /...
  •  Comment connaitre son adresse IP publique ? » Fiches pratiques : ipconfig (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...
  •  Shell récupérer ip et hostname script » Meilleure réponse: Essaye : ADRESS=`ifconfig eth0 | grep "inet adr" | sed 's/.*adr:\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]\).*/\1/'`
  •  Récuperer adresse ip php (Résolu) » Meilleure réponse: Attends, je te vire le doublon. :-) En fait, tu l'utilises le plus simplement du monde: <?php echo "Bonjour ceci est votre IP: $REMOTE_ADDR"; ?> Voili voilou ! Kalamit, La nuit, tous les chats sont gris. Pas les poulets ! :@)
  •  Adresse IP » Articles : Sommaire Qu'est-ce qu'une adresse IP Déchiffrement d'une adresse IP Adresses particulières Les classes de réseaux (obsolète) Classe A Classe B Classe C Attribution des adresses IP Adresses IP réservées Masques de sous-réseau Interet...
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?
Shell - Transferer des fichiers via ssh
Shell - Accès aux dernières commandes de l'historique