Utilisateur de ddclient
pour synchroniser mon IP publique avec un certain hébergeur, j’ai été contraint au début d’utiliser les services d’OpenDNS pour obtenir cette information. Cela génère un certain trafic en fonction des paramètres de ddclient
, et ça permet aussi à ce fournisseur de collecter quelques données…
cmd='dig @resolver4.opendns.com myip.opendns.com +short'
Voici donc une astuce permettant de récupérer l’IP publique accrochée à la passerelle OPNsense, via l’API. Plus besoin de fournisseur externe!
Il faut au préalable créer un nouvel utilisateur dans OPNsense, et lui initialiser un token pour l’API.
Voici la commande curl
une fois le token créé:
curl -s -k -u "<key>":"<secret>" https://192.168.0.254:4443/api/diagnostics/interface/getInterfaceStatistics | jq '.statistics | to_entries[] | select(.key|startswith("[wan]")).value.address' | grep -v '00:DE:AD:BE:EF:00' | grep -v ".*vmx1" | tr -d '"'
Le paquet jq
est nécessaire pour le bon fonctionnement de la commande.
Il faut aussi personnaliser 5 éléments dans la commande:
– <key>
: la clef du token pour l’utilisateur de l’API
– <secret>
: le secret du token pour l’utilisateur de l’API
– 192.168.0.254:4443
: IP et port de l’API OPNsene
– 00:DE:AD:BE:EF:00
: la MAC Address de l’interface WAN d’OPNsense
– vmx1
: le nom de l’interface WAN d’OPNsense