console linux

Whatismyip – Obtenir son IP public et générer des alertes

Nous connaissons tous les sites whatismyip, ifconfig.me, etc ; qui permettent d’obtenir son adresse IP publique.

Il est intéressant d’avoir cette information également dans un script.

Cela peut se faire via la commande curl sur un des sites suivants :

  • http://ifconfig.me/ip
  • http://icanhazip.com

J’ai mis à disposition une page de test type Whatismyip qui vous renvoi votre adresse IP : http://myip.monlinux.net

Dans la suite de mon article, je vais l’utiliser pour un script python Centreon/Nagios avec la gestion d’erreur et la possibilité de tester différents sites si l’un d’eux est indisponible. Cela permet de tester sa connexion en plus du simple “ping”.

Concrètement cela peut servir dans ce type de cas :

  • Vous disposez de plusieurs IP de sortie : on peut vérifier que l’on sort avec la bonne IP, très utilise en cas l’erreur de natting dans le firewall.
  • Vous disposez de 2 lignes internet avec chacune une adresse IP différente pour avoir un failover et vous voulez détecter un basculement

Attention que ces tests ont des dépendances avec un service DNS à monitorer également dans Centreon ou Nagios 😉

Vérifier son IP via un script de check  whatismyip

Voici comment utiliser le script de vérification d’adresse IP publique de sortie. On va lui donner un nom basique : check_public_ip.py

On peut soit renseigner l’adresse IP attendue dans le script, soit le passer en argument de cette façon :

Quand tout se passe correctement, vous obtenez ceci :

Si vous avez basculé sur votre ligne secondaire ou tout autre évènement qui utilise une IP différente que celle voulue :

Si vous avez un gros souci internet :

Les returnCodes type Nagios / Centreon sont gérés bien-entendu 😉

Voici le script

Disposer de son propre système whatismyip

Si vous voulez disposer de votre propre serveur de vérification d’IP publique, rien de plus simple : il vous suffit d’avoir un mini hébergement web sous la main!

Il faut simplement renvoyer l’adresse IP suivie d’un retour à la ligne avec ce simple bout de code :

 

Enjoy!

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">