#!/usr/bin/bash
DDNS_HOSTNAME=example.com
SERVER=domains.google.com
GOOGLE_USER=
GOOGLE_PASS=
TEST_HOST=example.com
CURL_EXE="/usr/bin/curl -4 --user-agent curl -s -get"
CURRENT_IP=$(${CURL_EXE} https://${SERVER}/checkip)
DNS_IP=$(/usr/bin/host ${TEST_HOST} | grep "has address" | awk '{print $4}')
VPN_UP=$(ip link ls wgpia0 2>&1)
echo -n "Expected IPv4 addr: ${DNS_IP}, Current IPv4 addr: ${CURRENT_IP} - "
if [ "$DNS_IP" != "$CURRENT_IP" ]; then
echo "IPv4 Addresses DO NOT match."
if [ "${VPN_UP}" == "Device \"wgpia0\" does not exist." ]; then
echo -n "VPN is not up. Attempting to update ${SERVER}... "
RETVAL=$(${CURL_EXE} https://${GOOGLE_USER}:${GOOGLE_PASS}@${SERVER}/nic/update?hostname=${DDNS_HOSTNAME})
echo -n "${RETVAL} - "
xmessage -display :0.0 "Your WAN IP address has changed and is now ${CURRENT_IP}."
else
echo -n "VPN is up. Skipping - "
fi # vpn_up
else
echo -n "IPv4 addresses match - "
fi # dns != current
echo "Done."
Comments