IP externe et notification

Bonjour,

Je ne suis pas trop novice mais je cherche le moyen le plus simple qu’un de mes RPI, 3B+ principalement, check mon ip externe via https://ipecho.net/plain par exemple et me retourne un mail, l’écrive via sftp sur une page web brute ou par d’autres moyens.
J’ai un rpi qui fait tourner adsb.im, un autre yunohost et encore un autre ou je bricole et test divers choses, mon p’tit labo quoi. Je vais bientôt avoir un pico.

Une ou des suggestion(s)
Si le sujet a déjà été évoqué, toutes mes excuses…!
(mais merci de me pointer sur le thread ^^)

Merci !

Tu cherches à avoir une adresse connu et accessible je crois. Vu que ton IP change, tu veux que ce changement te soit communiquer. Mais il y a plus simple.

Ce service t’offre un DynDNS/DDNS (Dynamic Domain Name Service), soit un appellation texte qui pointe sur une adresse IP qui peut changer. La configuration est assez simple, un programme avec ton compte va automatiquement actualiser ton adresse IP au service pour que le domaine choisi ce dirige vers cette adresse IP.

oodaaq.no-ip.org → 144.172.10.144
uniquement pour l’exemple

Alors pas besoin d’être informé et c’est rapide.

Moi j’ai mon propre système car j’ai mon propre nom de domaine (levelkro.net, levelkro.com levelkro.xyz). Mais j’ai déjà eu à utiliser leur service à une époque.


Si tu désire être avisé quand même, je te suggère PushBullet. Avec l’application sur ton téléphone, tu recevra directement des notifications. Sans ce limiter à ton projet pour l’adresse IP, tu peux t’envoyer des notifications pour d’autres choses.

Actuellement je l’utilise pour surveiller mon UPS et ainsi être informé en cas de panne d’alimentation et de l’état de la batterie. Il existe une librairie Python pour facilement l’utiliser, et le service est gratuit.

Envoyer par courriel, c’est rendu un peu plus complexe, vu les sécurité, les filtres anti-spam etc… un courriel trop court, par exemple juste ton adresse IP, pourrait facilement ce faire bloquer.

Par (s)FTP, ou c’est possible, mais plus dur que NoIp ou PushBullet, car tu dois créer un fichier, écrire dedans l’adresse IP, l’envoyer sur le serveur correctement et « overwrite » celui présent, en plus du délais de « création » de " connection", c’est une solution, mais tellement « Outdated », qui est habituellement réservés qu’a des demandes de transfert de fichiers (comme des images et vidéo de caméra de surveillance) . Mais c’est possible.

Mais ça t’exige d’avoir un système distant, si tu as un serveur Web, il y a plus simple.

Si tu as un serveur Web distant tu peux simplement avec un cron job aller chercher une URL précise avec un script PHP. Ce script PHP peut alors prendre l’adresse IP du client (pas besoin d’utiliser un service autre) et l’ajouter en DB ou dans un fichier. Par exemple curl -s -o /dev/null https://oodaaq.serveurdistant.com/updateip.php & depuis le RPi et le script s’occupe du reste.

Bref ta plusieurs solutions, perso, ce sont NoIp et PushBullet qui sont mes choix. Selon ce que je veux en final; que un IP et laisser comme sa ou utiliser un domaine (DNS) pour simplifier l’accès encore plus, sans devoir avoir de notification, voir un mélange des deux ?!

Merci pour ta prompte réponse !

Alors oui j’ai aussi deux noms de domaine utilisés pour d’autres service et hébergé sur des serveurs distants. Je n’ai justement pas envie d’user de service comme no-ip ou PushBullet, le code n’est pas open. Pas envie de faire passer mon trafique par de potentiel « mateurs ».
La disposition de mes rpi sur le web sont d’usage purement privé.
Je cherche justement du code pour faire le tout, monter mon serveur smtp n’est pas un soucis et la gestion des spams n’est pas un soucis. Je vais me pencher sur php/cron mais je suis pas, je l’avoue, une bête en prog… Je bricole plus qu’autres choses. Si tu as plus d’indices sur cette méthode, je suis preneur, sachant que je vais principalement utiliser ssh pour me connecter aux bestiau.
La suite sera de monter wireguard ou openvpn.

Merci d’avance si tu donnes suite ! :wink:

Vu que ton but semble d’obtenir ton adresse IP externe, le plus simple est de laisser un serveur distant le déterminé.

Alors si tu as un serveur Web avec PHP, tu peux te créer une page unique qui va faire le travail.

  • Récupère l’adresse IP du client, protège avec un passkey dans l’url pour éviter qu’un simple « Hit » lance la procédure,
  • De la tu peux programme PHP pour t’envoyer un courriel,
  • Tu peux aussi l’enregistrer dans une base de donnée, pour te permettre d’y accéder via un interface Web par exemple, dans un fichier tu risque de rendre publique l’information, vu que PHP ne peut travailler que dans le dossier Web facilement,
  • Un simple Cron pour automatiser la viste du lien, avec la commande curl évite une config complexe.

Dans ton script PHP, tu peux vérifier si l’IP actuel et déjà enregistré est identique, pour ainsi agir que si il y a un changement.


Si tu veux ne pas devoir utiliser un serveur Web externe, alors je te conseil un script en Python, déjà présent sous RPi. Ce sera plus ou moins le même principe qu’avec le script PHP, sauf qu’au lieu d’utiliser l’adresse IP du client, il faudra ajouter une routine pour aller la chercher autrement.

Tu peux utiliser ton serveur Web distant ou un service, comme le lien tu as donné.


Si tu es en mesure d’établir une communication SMTP et tu es sur de l’acheminement du courriel, alors oui tu peux l’utiliser. De toute façon tu devra tester avant de lancer en « Production ».

Pour le code, selon la solution, tu peux facilement demander à ChatGPT de te préparer le code. Ça reste simple à mettre en place.