On a souvent la problématique, à la maison, de ne pas disposer d’une IP fixe et donc de recourir à des services comme DynDNS pour obtenir un nom de domaine qui nous reliera toujours à l’IP changeante de notre domicile.

Seulement, on dépend du coup d’un service externe. Voici comment j’ai procédé afin de me passer de DynDNS.

J’ai un Raspberry Pi à la maison, connecté à ma box en filaire. Jusque-là, rien d’aberrant. Mon DNS, comme la plupart de mon infrastructure (hormis ce qui est à la maison) est géré dans AWS. Cela offre l’avantage d’être totalement pilotable par API, notamment en Python via l’excellent Boto3.

Il suffit alors sur le Pi de :

  • Récupérer son IP (sur un service qui renvoie du JSON de préférence, comme ipinfo.io)
  • Comparer à l’ip déjà présente dans la zone DNS, via l’id de la zone
  • Si elles diffèrent, on remplace

Le tout en cron sur le PI, comme ceci:

Un service comme ipinfo autorise 1000 requêtes par jour en mode free, attention donc à ne pas positionner le cron toutes les minutes. Toutes les cinq minutes, c’est suffisant.

Le script est en Python donc, et dispo sur mon Github.