Skip to content

Instantly share code, notes, and snippets.

@pweinzettel
Created March 6, 2021 00:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pweinzettel/4cdbf938faf2a84a7af3aa6b92ad4de2 to your computer and use it in GitHub Desktop.
Save pweinzettel/4cdbf938faf2a84a7af3aa6b92ad4de2 to your computer and use it in GitHub Desktop.
namecheap dynamic dns update
#!/bin/bash
### CONFIG INI
HOST='subdom'
DOMAIN='example.com'
PASSWD='<SECRET>'
URL='https://dynamicdns.park-your-domain.com/update'
### CONFIG END
IP=$(curl -s ifconfig.me)
EC=$?
if [ "${EC}" -eq 0 ]; then
LAST="$(cat /tmp/${HOST}.${DOMAIN} 2>/dev/null)"
if [ "${LAST}" != "${IP}" ]; then
curl -s "${URL}?host=${HOST}&domain=${DOMAIN}&ip=${IP}&password=${PASSWD}" | logger -t "DNS Update"
EC=${PIPESTATUS[0]}
if [ "${EC}" -eq 0 ]; then
echo ${IP} > /tmp/${HOST}.${DOMAIN}
fi
else
echo "No change ( ${IP} == ${LAST} )" | logger -t "DNS Update"
fi
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment