Skip to content

Instantly share code, notes, and snippets.

@stormf
Created November 13, 2015 09:51
Show Gist options
  • Save stormf/b93de56e2f9f7497a4c2 to your computer and use it in GitHub Desktop.
Save stormf/b93de56e2f9f7497a4c2 to your computer and use it in GitHub Desktop.
#!/bin/sh
. /etc/update-cloudflare/config
WAN_IP=`curl http://icanhazip.com/ 2> /dev/null`
OLD_WAN_IP=`cat $tmpfile`
if [ "$WAN_IP" = "$OLD_WAN_IP" ]
then
touch $tmpfile
else
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/$zone_id/dns_records/$record_id" \
-H "Content-Type:application/json" \
-H "X-Auth-Key:$cf_auth_key" \
-H "X-Auth-Email:$cf_email" \
--data '{
"id":"'"$record_id"'",
"type":"A",
"name":"'"$fqdn"'",
"content":"'"$WAN_IP"'",
"ttl":"'"$ttl"'",
"zone_id":"'"$zone_id"'",
"zone_name":"'"$zone_name"'",
"data":{}
}'
echo $WAN_IP > $tmpfile
fi
@stormf
Copy link
Author

stormf commented Nov 13, 2015

% sudo cat /etc/update-cloudflare/config
cf_auth_key=
cf_email=
zone_id=
zone_name=
record_id=
fqdn=
ttl=1800
tmpfile=/tmp/latest-ip.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment