<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>whatismyip Archives - Mon linux</title>
	<atom:link href="https://www.monlinux.net/tag/whatismyip/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.monlinux.net/tag/whatismyip/</link>
	<description>by Belgotux</description>
	<lastBuildDate>Tue, 08 Feb 2022 13:35:07 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>

<image>
	<url>https://www.monlinux.net/wp-content/uploads/cropped-mon-linux-logo-grey-512-32x32.png</url>
	<title>whatismyip Archives - Mon linux</title>
	<link>https://www.monlinux.net/tag/whatismyip/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Whatismyip &#8211; Obtenir son IP public et générer des alertes</title>
		<link>https://www.monlinux.net/2015/03/whatismyip/</link>
					<comments>https://www.monlinux.net/2015/03/whatismyip/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Tue, 10 Mar 2015 19:24:24 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Réseaux]]></category>
		<category><![CDATA[centreon]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[nagios]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[whatismyip]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=828</guid>

					<description><![CDATA[<p>Nous connaissons tous les sites whatismyip, ifconfig.me, etc ; qui permettent d&#8217;obtenir son adresse IP publique. Il est int&#233;ressant d&#8217;avoir cette information &#233;galement dans un script. Cela peut se faire via la commande curl sur un des sites suivants :... <a class="more-link" href="https://www.monlinux.net/2015/03/whatismyip/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2015/03/whatismyip/">Whatismyip &#8211; Obtenir son IP public et générer des alertes</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Nous connaissons tous les sites whatismyip, ifconfig.me, etc ; qui permettent d&rsquo;obtenir son adresse IP publique.</p>
<p>Il est intéressant d&rsquo;avoir cette information également dans un script.</p>
<p>Cela peut se faire via la commande curl sur un des sites suivants :</p>
<ul>
<li>http://ifconfig.me/ip</li>
<li>http://icanhazip.com</li>
</ul>
<pre class="lang:sh decode:true">$ curl http://ifconfig.me/ip</pre>
<p>Dans la suite de mon article, je vais l&rsquo;utiliser pour un script python Centreon/Nagios avec la gestion d&rsquo;erreur et la possibilité de tester différents sites si l&rsquo;un d&rsquo;eux est indisponible. Cela permet de tester sa connexion en plus du simple « ping ».</p>
<p>Concrètement cela peut servir dans ce type de cas :</p>
<ul>
<li>Vous disposez de plusieurs IP de sortie : on peut vérifier que l&rsquo;on sort avec la bonne IP, très utilise en cas l&rsquo;erreur de natting dans le firewall.</li>
<li>Vous disposez de 2 lignes internet avec chacune une adresse IP différente pour avoir un failover et vous voulez détecter un basculement</li>
</ul>
<p>Attention que ces tests ont des dépendances avec un service DNS à monitorer également dans Centreon ou Nagios <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><span id="more-828"></span></p>
<h2>Vérifier son IP via un script de check  whatismyip</h2>
<p>Voici comment utiliser le script de vérification d&rsquo;adresse IP publique de sortie. On va lui donner un nom basique : <a href="https://www.monlinux.net/wp-content/uploads/check_public_ip.py_1.txt" target="_blank" rel="noopener">check_public_ip.py</a></p>
<p>On peut soit renseigner l&rsquo;adresse IP attendue dans le script, soit le passer en argument de cette façon :</p>
<pre class="lang:sh decode:true">$ python check_public_ip.py 1.2.3.4</pre>
<p>Quand tout se passe correctement, vous obtenez ceci :</p>
<pre class="lang:sh decode:true ">CheckPublicIP: OK - public ip from site 'http://icanhazip.com' : '1.2.3.4'</pre>
<p>Si vous avez basculé sur votre ligne secondaire ou tout autre évènement qui utilise une IP différente que celle voulue :</p>
<pre class="lang:sh decode:true ">CheckPublicIP: Warning - not on the right public IP '1.2.3.4' ! Maybe you are on your failover Gateway - public IP: '6.7.8.9'</pre>
<p>Si vous avez un gros souci internet :</p>
<pre class="lang:sh decode:true">CheckPublicIP: Critical - Internet connection seems to have a problem!</pre>
<p>Les returnCodes type Nagios / Centreon sont gérés bien-entendu <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h2>Voici le script</h2>
<pre class="lang:sh decode:true">#!/usr/bin/python  
# Auteur : Belgotux
# Site : www.monlinux.net
# Adresse : belgotux&#64;m&#111;&#110;&#108;inu&#120;&#46;&#110;&#101;&#116;
# Version : 1.0
# Date : 10-03-2015
# Licence : GPLv3
# Description : check the public IP address of the connection for Nagios/Centreon

from urllib import urlopen
import re,sys

#INSERT HERE YOUR IP HERE IF YOU NOT USE ARGUMENTS
myip = "1.2.3.4"

#inactif right now http://curlmyip.com
sites_list = ('http://curlmyip.com','http://icanhazip.com','http://ifconfig.me/ip','http://myip.monlinux.net/')
# Return codes expected by Nagios/Centreon
OK = 0
WARNING = 1
CRITICAL = 2
ip='None'

#MAIN
if (len(sys.argv)==2):
    myip = sys.argv[1]
if (len(sys.argv)&gt;2):
    print "Only put one argument (or not) : the expected IP"
    raise SystemExit, 4

for site in sites_list:
    try:
        ip = urlopen(site).read()
        p=re.match('([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}|(\d{1,3}\.){3}\d{1,3}', ip)
        if p:
            break
    except IOError:
        continue

if ip == myip+'\n':
    print "CheckPublicIP: OK - public ip from site %r : %r" % (site,str(ip)[:-1])
    raise SystemExit, OK

elif re.match('([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}|(\d{1,3}\.){3}\d{1,3}', ip):
    print 'CheckPublicIP: Warning - not on the right public IP %r ! Maybe you are on your failover Gateway - public IP: %r' % (myip,str(ip)[:-1])
    raise SystemExit, WARNING

else:
    print "CheckPublicIP: Critical - Internet connection seems to have a problem!"
    raise SystemExit, CRITICAL
</pre>
<h2>Disposer de son propre système whatismyip</h2>
<p>Si vous voulez disposer de votre propre serveur de vérification d&rsquo;IP publique, rien de plus simple : il vous suffit d&rsquo;avoir un mini hébergement web sous la main!</p>
<p>Il faut simplement renvoyer l&rsquo;adresse IP suivie d&rsquo;un retour à la ligne avec ce simple bout de code :</p>
<pre class="lang:php decode:true ">&lt;?
echo $_SERVER['REMOTE_ADDR'];
echo "\n";
?&gt;</pre>
<p>Enjoy!</p>
<p>L’article <a href="https://www.monlinux.net/2015/03/whatismyip/">Whatismyip &#8211; Obtenir son IP public et générer des alertes</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2015/03/whatismyip/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/

Mise en cache de page à l’aide de Disk: Enhanced 
Mise en cache de la base de données de 11/42 requêtes en 0.031 secondes utilisant Disk

Served from: www.monlinux.net @ 2026-04-30 04:01:49 by W3 Total Cache
-->