Dynamisk DNS med Cloudflare

Cloudflare är en lösning för att förbättra säkerheten för dina webbappar och som samtidigt sägs göra dina siter snabbare genom att fungera som ett slags CDN. Men det är också ett sätt att få gratis dynamisk DNS-hantering för dina domäner på samma sätt som du kan få av t.ex. dyndns.org, fast du där får betala en avgift om du vill använda ditt eget domännamn.

För att sätta upp det här kan du antingen använda Cloudflares moddade ddclient, eller  så kan du göra som jag och använda deras API i ett script som du sedan kör i cron (du behöver lynx och curl för att det ska funka):

#!/bin/bash
TOKEN='<din api token här>'
HOSTS="example.com example.org"
USER="user@example.com"
IPFILE=/opt/cloudflare/ip.log
OLDIP=`cat $IPFILE`
IP=`lynx --dump http://checkip.dyndns.org/ | grep Address | sed 's/.*Address: //' | tr -s ' '`
REGEX='^(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$'
if [[ ! $IP =~ $REGEX ]]; then
 echo "could not get ip from dyndns.org, bailing out" 1>&2
 exit 1
fi
if [[ "$OLDIP" != "$IP" ]]; then
 echo "ip has changed"
 for host in $HOSTS; do
 curl "https://www.cloudflare.com/api.html?a=DIUP&hosts=$host&u=$USER&tkn=$TOKEN&ip=$IP"
 done
 echo $IP > $IPFILE
fi
exit 0

 

Edit:

Regexet fixat.

1 comment on this post.
  1. Mickes blogg · Matcha en ip-adress med posix extended regexp:

    […] Subscribe to feed ‹ Dynamisk DNS med Cloudflare […]

Leave a comment





*