mirror of
https://gitea.blesmrt.net/mikaela/scripts.git
synced 2024-12-23 19:22:46 +01:00
Mikaela Suomalainen
5e0a611c4d
I am not sure if this is needed, but why not just in case the default behaviour changes in distant future.
57 lines
1.6 KiB
Bash
Executable File
57 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# This script is based on cf-ddns.sh found at
|
|
# <https://gist.github.com/larrybolt/6295160> and it's comments.
|
|
# Inspiration also took from
|
|
# <https://github.com/commx/ydns/blob/master/updater.sh> which is a lot
|
|
# more complex than this.
|
|
|
|
# Basic usage (as root):
|
|
# curl -L https://github.com/Mikaela/scripts/raw/gh-pages/bash/ydns-simple > /usr/local/bin/ydns-simple
|
|
# chmod 700 /usr/local/bin/ydns-simple
|
|
## Copy-paste the following to your crontab without the #
|
|
# */5 * * * * /usr/local/bin/ydns-simple >/dev/null 2>&1
|
|
|
|
|
|
# yDNS details
|
|
USEREMAIL=""
|
|
PASSWORD=""
|
|
HOSTNAME=""
|
|
|
|
# Get IPv4 address
|
|
WAN_IP4=$(dig +short myip.opendns.com. A @208.67.220.220)
|
|
if [ -f $HOME/.wan_ip4-ydns.txt ]; then
|
|
OLD_WAN_IP4=$(cat $HOME/.wan_ip4-ydns.txt)
|
|
else
|
|
echo "No file, need IP4"
|
|
OLD_WAN_IP4=""
|
|
fi
|
|
|
|
# Get IPv6 address
|
|
WAN_IP6=$(dig +short myip.opendns.com. AAAA @2620:0:ccd::2)
|
|
if [ -f $HOME/.wan_ip6-ydns.txt ]; then
|
|
OLD_WAN_IP6=$(cat $HOME/.wan_ip6-ydns.txt)
|
|
else
|
|
echo "No file, need IP6"
|
|
OLD_WAN_IP6=""
|
|
fi
|
|
|
|
# Update IPv4
|
|
if [ "$WAN_IP4" = "$OLD_WAN_IP4" ]; then
|
|
echo "IP4 Unchanged"
|
|
else
|
|
echo $WAN_IP4 > $HOME/.wan_ip4-ydns.txt
|
|
echo "Updating DNS to $WAN_IP4"
|
|
curl -4 --basic -u "$USEREMAIL:$PASSWORD" --silent \
|
|
https://ydns.eu/api/v1/update/?host=$HOSTNAME
|
|
fi
|
|
|
|
# Update IPv6
|
|
if [ "$WAN_IP6" = "$OLD_WAN_IP6" ]; then
|
|
echo "IP6 Unchanged"
|
|
else
|
|
echo $WAN_IP6 > $HOME/.wan_ip6-ydns.txt
|
|
echo "Updating DNS to $WAN_IP6"
|
|
curl -6 --basic -u "$USEREMAIL:$PASSWORD" --silent \
|
|
https://ydns.eu/api/v1/update/?host=$HOSTNAME
|
|
fi
|