Update script to handle the @ record

This commit is contained in:
Douze Bé 2024-02-18 16:18:17 +01:00
parent 3d758b976b
commit 196a056885
2 changed files with 27 additions and 5 deletions

View file

@ -1,3 +1,3 @@
DOMAIN="domain.tld"
RECORD="host"
RECORD="host" # Set to empty string to update the @ record
APIKEY="Your-API-Key"

View file

@ -33,8 +33,14 @@ if [[ -z "$WAN_IP4" && -z "$WAN_IP6" ]]; then
fi
# Get IP from DNS
DNS_IP4=$(dig +short @ns1.gandi.net -t A $RECORD.$DOMAIN)
DNS_IP6=$(dig +short @ns1.gandi.net -t AAAA $RECORD.$DOMAIN)
if [[ ! -z "$RECORD" ]]
then
DNS_IP4=$(dig +short @ns1.gandi.net -t A $RECORD.$DOMAIN)
DNS_IP6=$(dig +short @ns1.gandi.net -t AAAA $RECORD.$DOMAIN)
else
DNS_IP4=$(dig +short @ns1.gandi.net -t A $DOMAIN)
DNS_IP6=$(dig +short @ns1.gandi.net -t AAAA $DOMAIN)
fi
echo DNS IPv4 : $DNS_IP4 | logger
echo DNS IPv6 : $DNS_IP6 | logger
@ -45,10 +51,18 @@ if [[ ! -z "$WAN_IP4" ]]; then
then
echo Updating IPv4 DNS records for $RECORD.$DOMAIN | logger
DATA='{"rrset_values": ["'$WAN_IP4'"]}'
if [[ ! -z "$RECORD" ]]
then
IP4_RES=$(curl -s -XPUT -d "$DATA" \
-H"X-Api-Key: $APIKEY" \
-H"Content-Type: application/json" \
"$API/domains/$DOMAIN/records/$RECORD/A" 2>&1)
else
IP4_RES=$(curl -s -XPUT -d "$DATA" \
-H"X-Api-Key: $APIKEY" \
-H"Content-Type: application/json" \
"$API/domains/$DOMAIN/records/@/A" 2>&1)
fi
echo Update of IPv4 DNS record : $IP4_RES | logger
else
echo No need to update IPv4 DNS record for $RECORD.$DOMAIN | logger
@ -62,10 +76,18 @@ if [[ ! -z "$WAN_IP6" ]]; then
then
echo Updating IPv6 DNS records for $RECORD.$DOMAIN | logger
DATA='{"rrset_values": ["'$WAN_IP6'"]}'
if [[ ! -z "$RECORD" ]]
then
IP6_RES=$(curl -s -XPUT -d "$DATA" \
-H"X-Api-Key: $APIKEY" \
-H"Content-Type: application/json" \
"$API/domains/$DOMAIN/records/$RECORD/AAAA" 2>&1)
else
IP6_RES=$(curl -s -XPUT -d "$DATA" \
-H"X-Api-Key: $APIKEY" \
-H"Content-Type: application/json" \
"$API/domains/$DOMAIN/records/@/AAAA" 2>&1)
fi
echo Update of IPv6 DNS record : $IP6_RES | logger
else
echo No need to update IPv6 DNS record for $RECORD.$DOMAIN | logger