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="">