blob: 4d686668c460c802daa941b7970213919c8887fd (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#!/bin/sh
set -e
api_email=jodersky@gmail.com
api_key={{ddns_api_key}}
zone_name={{ddns_zone}}
record_name={{ddns_record}}
cf() {
curl \
-sS \
-H "X-Auth-Email: $api_email"\
-H "X-Auth-Key: $api_key"\
-H "Content-Type: application/json"\
$@
}
external_ip=$(dig +short myip.opendns.com @resolver1.opendns.com)
zone_id=$(cf -X GET "https://api.cloudflare.com/client/v4/zones?name=$zone_name" | jq -r '.result[0].id')
record_id=$(cf -X GET "https://api.cloudflare.com/client/v4/zones/$zone_id/dns_records?name=$record_name" | jq -r '.result[0].id')
cf -X PUT "https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records/${record_id}" \
--data {\"type\":\"A\",\"name\":\""$record_name"\",\"content\":\""$external_ip"\"} \
|| (echo "Error updating IP address." >&2 && exit 1)
|