Skip to content

Instantly share code, notes, and snippets.

@ndunks
Last active January 17, 2021 03:23
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save ndunks/c756030c0757b667c9a478c97ca5a9b7 to your computer and use it in GitHub Desktop.
Save ndunks/c756030c0757b667c9a478c97ca5a9b7 to your computer and use it in GitHub Desktop.
Namecheap DDNS Updater Bash Script
# make it executable `chmod +x ddns-update`
# move it path `mv ddns-update /usr/bin/`
# setup cronjob for every 15 minutes `crontab -e`
# */15 * * * * ddns-update >/dev/null 2>&1
# dont forget to change your own domain & password
# uncomment if you want internet connection check before running
#while ! ping -c 1 -W 1 8.8.8.8; do
# echo "DDNS-UPDATE: Waiting internet connection.."
# sleep 2
#done
last_ip_file="/tmp/last_ip"
last_ip=`cat $last_ip_file`
echo "DDNS-UPDATE: OK, Getting public IP address"
ip=$(curl -s http://dynamicdns.park-your-domain.com/getip)
if [ "$ip" == "$last_ip" ]; then
echo "IP Still same, not need to update."
exit 0
fi
echo "DDNS-UPDATE: Public IP is: $ip, Updating IP..."
host=@
domain=your-own-domain.tld
password=your-own-password
response=$(curl -s "https://dynamicdns.park-your-domain.com/update?host=$host&domain=$domain&password=$password&ip=$ip")
echo $response
echo $ip > $last_ip_file
@calederer
Copy link

I've added some content to your script but can't do a pull for a gist.
https://gist.github.com/calederer/2090158c236a26cd5218a04ecebb0447

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment