Page 1 sur 4

Adresse IP publique

Publié : 19 janv. 2018, 10:24
par Jihem
Bonjour à tous
Suite à un hostname non renouvelé et supprimé chez Noip je ne peux plus accéder à mon raspberry qui est à 500km et qui gère le chauffage :roll:
Je vais devoir faire un aller retour pour changer le dns de la boxe car je ne peux pas recréer le même nom.
A l'avenir j'aimerais pouvoir récuperer l'adresse publique de ma boxe sans passer par Noip et de me l'envoyer en notification quand elle change; ce qui me permettrait de me connecter directement.
J'ai essayé ce genre de scripts trouvés sur le net:

Code : Tout sélectionner

 #!/bin/bash
IP_PUBLIQUE=`wget -q -O - http://www.whatismyip.org`
echo $IP_PUBLIQUE
qui me revoit:

Code : Tout sélectionner

<!doctype html> <html> <head> <meta charset="utf-8"> <meta http-equiv="refresh" content="1;url=http://whatismyip.org/home.php/" /> <title>What is my IP?</title> </head> <body> </body> </html>
j'ai également essayé ce script python:

Code : Tout sélectionner

import urllib
print urllib.urlopen("http://www.whatismyip.com/automation/n09230945.asp").readline()
avec le même genre de résultat.
Quelqu’un parmi vous aurait il déjà résolu ce problème?
Merci d'avance
Cordialement
Jihem

Re: Adresse IP publique

Publié : 19 janv. 2018, 10:37
par Jihem
Je me répond à moi même si ça peut aider :lol:

Code : Tout sélectionner

!/bin/bash
IP_PUBLIQUE=`wget -q -O - http://checkip.dyndns.com/`
echo $IP_PUBLIQUE
qui renvoit

Code : Tout sélectionner

<html><head><title>Current IP Check</title></head><body>Current IP Address: XX.XX.XX.XXX</body></html>
il n'y a plus qu'a extraire l'adresse

Re: Adresse IP publique

Publié : 19 janv. 2018, 10:45
par vil1driver
Salut,

dans le style en lua (type TIME)

Code : Tout sélectionner


-- chargement des modules (http://easydomoticz.com/forum/viewtopic.php?f=17&t=3940)
dofile('/home/vil1driver/domoticz/scripts/lua/modules.lua')

local debug = true  -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir


commandArray = {}

-- création variable mémo au besoin
if (uservariables['monIp'] == nil ) then
	creaVar('monIp','0')
	log('monIp initialisation',debug)
	return commandArray
end

-- récupération de la page
local result = os.capture(curl..'http://checkip.dyndns.com', false)
log(result, debug)

-- nettoyage pour ne garder que l'ip
local ip = result:gsub("Current IP Address: ", "")
log(ip, debug)

-- comparaison avec l'ip précédente
if ip ~= uservariables['monIp'] then
	-- notification
	pushbullet('renouvellement ip','ma nouvelle ip est: '..ip)
	-- mémo ip
	updateVar('monIp',ip)
end


return commandArray

Re: Adresse IP publique

Publié : 19 janv. 2018, 13:43
par lost
vil1driver a écrit :Salut,

dans le style en lua (type TIME)
En time, ca va être un check toutes les mn... C'est amha un peu beaucoup et pourrait motiver le service renvoyant l'adresse courante à blacklister l'IP du demandeur car si trop de monde fait ainsi, le site ne tiendra pas.

Mieux vaudrait placer le check dans un script bash appelé via un cron une fois par heure maxi, capable de lire via l'API HTTP une variable utilisateur contenant l'IP externe sauvegardée et la modifier seulement si besoin. Côté script time, si le lastupdate de cette variable est de moins de 1mn, envoyer une notification via le système de domoticz, plus simple à faire ainsi en Lua qu'en bash.

Sinon, j'aimerais savoir comment le 1er demandeur a eu son domaine no-ip perdu: Chez eux, tant qu'on l'update régulièrement, il me semblait que le renouvellement était tacite (contrairement à dyndns depuis un changement de conditions de service il y a qq années qui m'avait forcé à les quitter): Si cela a changé, va falloir me méfier... Toutes les machines de proches sur lesquelles j'ai parfois à me connecter utilisent des domaines no-ip. Mon PI avec Domoticz aussi.

Ca me ferait un peu ch.. de les perdre.

Re: Adresse IP publique

Publié : 19 janv. 2018, 16:52
par vil1driver
Oui toutes les minutes c'est trop effectivement

En lua un simple

Code : Tout sélectionner

if time.min%59 == 0 then
Et le tour est joué, un check par heure..
En gros t'es libre de définir la fréquence..
Cette méthode est couramment utilisé

mais si tu aimes diversifier les outils et langages, cron et comparses sont utilisables ;)

Re: Adresse IP publique

Publié : 19 janv. 2018, 18:57
par fabienp
pour ne pas être dépendant d'un site externe qui peut tombé en panne, ou même fermé, ou encore changer d'adresse, ou fermé juste ce service ....
tu peux utilisé une partie de ce tuto :
https://yann.me/dynhost-ovh-pour-raspbe ... ine-linux/

pour résumé :

sudo apt-get update
sudo apt-get install dnsutils
curl ifconfig.co

ça te donne direct ton ip, attention, tuto un peu dépassé, il faut rajouté "v4." devant ifconfig.co sauf sit u veux ton ipv6 :
curl v4.ifconfig.co

ré utilise le script complet qu'ils donnent, ainsi tu peux facilement comparé l'ip existante avec la précédente, et limité de le nombre de notification.
ce tuto est trés utile et pratique pour tout un tas de situation :)

Re: Adresse IP publique

Publié : 20 janv. 2018, 06:59
par lost
vil1driver a écrit :Oui toutes les minutes c'est trop effectivement

En lua un simple

Code : Tout sélectionner

if time.min%59 == 0 then
Et le tour est joué, un check par heure..
En fait, j'ai jamais vraiment appris Lua: Juste codé avec par l'exemple en me mettant à Domoticz l'année dernière... Et donc quelques lacunes en effet!

Re: Adresse IP publique

Publié : 21 janv. 2018, 10:17
par Jihem
Bonjour
Merci de ces réponses
pour ne pas être dépendant d'un site externe qui peut tombé en panne, ou même fermé, ou encore changer d'adresse, ou fermé juste ce service ....
tu peux utilisé une partie de ce tuto :
https://yann.me/dynhost-ovh-pour-raspbe ... ine-linux/

pour résumé :

sudo apt-get update
sudo apt-get install dnsutils
curl ifconfig.co

ça te donne direct ton ip, attention, tuto un peu dépassé, il faut rajouté "v4." devant ifconfig.co sauf sit u veux ton ipv6 :
curl v4.ifconfig.co
la commande v4.ifconfig.co est-elle une commande interne de Raspbian ou fait elle appel à un site externe https://ifconfig.co/ .En regardant sur le net, c'est pas clair pour moi.
Si c'est interne, c'est effectivement beaucoup plus sur.
Merci

Re: Adresse IP publique

Publié : 22 janv. 2018, 08:39
par lost
Jihem a écrit : Si c'est interne, c'est effectivement beaucoup plus sur.
Pas le cas ici: CURL est un client qui va récupérer l'IP dans la réponse du site via l'URL v4.ifconfig.co
Pour la récupérer sans passer par l'extérieur, il faudrait que ce soit possible via une API de la box de son opérateur. Ou se bricoler un script qui arrive à la récupérer dans la page d'admin.

Re: Adresse IP publique

Publié : 22 janv. 2018, 20:51
par tekkharibo
Pourquoi ne pas utiliser ChangeIP

Perso j'ai un dns depuis 2 ans dessus et gratuitement compatible avec livebox