#!/bin/bash CF_ACCESS_TOKEN=033xQP4_ZpTq3sSkeftz5J6BWw_R9eoDNTba7zfH CF_ZONE_ID=1d6a623d1780c31544fc86f718dac16e URLS=('awin.one' 'blog.awin.one' 'ftp.awin.one' 'git.awin.one' 'storj.awin.one' 'rss.awin.one' 'nc.awin.one' 'collabora.awin.one' 'storjks.awin.one') CF_RECORD_IDS=('d67b2a1b3d7cd520b8e8dad2cb522460' '69dcc0bd619b1a3d4a71458faff2aa50' 'bd397d9779d42c0b92c9c9c47b765769' '4eccb48e85f2daa8fefeb92c8cb4b4ee' '216d631bc860c6a11b62e3a1003f3e3e' '62981cfec8bf370696c62ca979667ff6' '2c0b1330487af1262b090a8731a0e0b2' 'bde4e54eb87b2d543541dea2c008f0da' '1d6a623d1780c31544fc86f718dac16e') INTERNET_IP=`curl -s http://ipv4.icanhazip.com` INTERFACE_IP=`ip address show wlan0 | grep wlan0 | grep global | awk '{print$2}'` DNS_RECORD_IP=`dig +short "${URLS[0]}" | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | awk 'NR==1{print}'` NOW_TIME=`date` if [ "$INTERNET_IP" != "$DNS_RECORD_IP" ] then echo "Renew IP: ${DNS_RECORD_IP} to ${INTERNET_IP}" echo "${NOW_TIME}: Renew IP: ${DNS_RECORD_IP} to ${INTERNET_IP}" > /home/awin/log/ddns.log for ((i = 0; i < ${#URLS[@]}; i++)); do echo "Update ${URLS[$i]}, ${CF_RECORD_IDS[$i]}" >> /home/awin/log/ddns.log curl -X PUT "https://api.cloudflare.com/client/v4/zones/${CF_ZONE_ID}/dns_records/${CF_RECORD_IDS[$i]}" \ -H "Authorization: Bearer ${CF_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ --data '{"type":"A","name":"'${URLS[$i]}'","content":"'${INTERNET_IP}'","ttl":120,"proxied":false}' done else echo "No change: ${INTERNET_IP}" echo "${NOW_TIME}: No change: ${INTERNET_IP}" > /home/awin/log/ddns.log fi