Skip to content

Instantly share code, notes, and snippets.

@johnsie
Created July 19, 2020 22:03
Show Gist options
  • Save johnsie/8de6890a47ac037614e2bec0c7724886 to your computer and use it in GitHub Desktop.
Save johnsie/8de6890a47ac037614e2bec0c7724886 to your computer and use it in GitHub Desktop.
Simple Namecheap Dynamic DNS client
#!/bin/sh
set -eu
FETCH="fetch -qo -"
# or for curl:
#FETCH="curl -s"
# $1: your domain
# $2: subdomain to update use @ for TLD
# $3: the password given to you by Namecheap's web interface
#
# Rerun this script every 5 minutes. Crontab entry (not as root):
# */5 * * * * namecheap-ddns bla.com @ asdjfasfasdfasdf
domain=$1
host=$2
password=$3
out=$(${FETCH} "https://dynamicdns.park-your-domain.com/update?host=${host}&domain=${domain}&password=${password}")
grep -q "<ErrCount>0</ErrCount>" <<EOF && exit 0
${out}
EOF
cat <<EOF
${out}
EOF
exit 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment