45 lines
1.3 KiB
Bash
45 lines
1.3 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
#Import Credentials
|
||
|
source .env 2> /dev/null
|
||
|
|
||
|
fetchzoneid(){
|
||
|
FETCHZONEID=$(curl -s $CF_API_URL/zones?name=$CF_ROOT_ZONE \
|
||
|
-H Content-Type:application/json \
|
||
|
-H X-Auth-Key:$CF_API_KEY \
|
||
|
-H X-Auth-Email:$CF_EMAIL)
|
||
|
CF_ZONE_ID=$(echo $FETCHZONEID | jq -r '.result | .[] | .id')
|
||
|
}
|
||
|
|
||
|
fetchdnsid(){
|
||
|
FETCHDNSID=$(curl -s $CF_API_URL/zones/$CF_ZONE_ID/dns_records?name=$CF_DOMAIN \
|
||
|
-H Content-Type:application/json \
|
||
|
-H X-Auth-Key:$CF_API_KEY \
|
||
|
-H X-Auth-Email:$CF_EMAIL)
|
||
|
CF_DNS_ID=$(echo $FETCHDNSID | jq -r '.result | .[] | .id')
|
||
|
}
|
||
|
|
||
|
getip(){
|
||
|
MY_IP=$(curl -s $WHATISMYIP)
|
||
|
}
|
||
|
getdatetime(){
|
||
|
TIME=$(date)
|
||
|
}
|
||
|
updateip(){
|
||
|
curl -s -X PUT $CF_API_URL/zones/$CF_ZONE_ID/dns_records/$CF_DNS_ID \
|
||
|
-H Content-Type:application/json \
|
||
|
-H X-Auth-Key:$CF_API_KEY \
|
||
|
-H X-Auth-Email:$CF_EMAIL \
|
||
|
--data '{"type":"A","name":"'${CF_DOMAIN}'","content":"'${MY_IP}'","ttl":120,"proxied":false}' > /dev/null
|
||
|
}
|
||
|
|
||
|
fetchzoneid
|
||
|
fetchdnsid
|
||
|
while true; do
|
||
|
getip
|
||
|
updateip
|
||
|
getdatetime
|
||
|
(echo $MY_IP - $TIME) | tee -a ip.log
|
||
|
sleep $DELAY
|
||
|
done
|