Files
WhatIDo/update-dynv6.sh

40 lines
1.1 KiB
Bash

#!/bin/bash
# dynv6 DDNS update script
# Environment variables expected:
# DYNDNS_TOKEN - dynv6 token
# DYNDNS_HOSTNAME - domain name (e.g., kiberone.dns.army)
set -e
TOKEN="${DYNDNS_TOKEN}"
HOSTNAME="${DYNDNS_HOSTNAME}"
if [ -z "$TOKEN" ] || [ -z "$HOSTNAME" ]; then
echo "ERROR: DYNDNS_TOKEN and DYNDNS_HOSTNAME must be set"
exit 1
fi
echo "[$(date)] Updating dynv6 for $HOSTNAME..."
# Update IPv4
IPV4=$(curl -s -4 https://api.ipify.org 2>/dev/null || echo "")
if [ -n "$IPV4" ]; then
echo "[$(date)] Detected IPv4: $IPV4"
RESPONSE=$(curl -s "https://dynv6.com/api/update?hostname=${HOSTNAME}&token=${TOKEN}&ipv4=${IPV4}")
echo "[$(date)] IPv4 update response: $RESPONSE"
else
echo "[$(date)] No IPv4 detected"
fi
# Update IPv6
IPV6=$(curl -s -6 https://api6.ipify.org 2>/dev/null || echo "")
if [ -n "$IPV6" ]; then
echo "[$(date)] Detected IPv6: $IPV6"
RESPONSE=$(curl -s "https://dynv6.com/api/update?hostname=${HOSTNAME}&token=${TOKEN}&ipv6=${IPV6}")
echo "[$(date)] IPv6 update response: $RESPONSE"
else
echo "[$(date)] No IPv6 detected"
fi
echo "[$(date)] Update complete"