Skip to content

Instantly share code, notes, and snippets.

@dalhundal
Created May 4, 2014 16:48
Show Gist options
  • Save dalhundal/89159b3f032588586e91 to your computer and use it in GitHub Desktop.
Save dalhundal/89159b3f032588586e91 to your computer and use it in GitHub Desktop.
Shell script to update namecheap.com dynamic dns for a domain with your external IP address
#!/bin/sh
# Shell script to update namecheap.com dynamic dns
# for a domain to your external IP address
HOSTNAME=yoursubdomain
DOMAIN=yourdomainname.com
PASSWORD=y0urp455w0rd
IP=`curl -s echoip.com`
curl "https://dynamicdns.park-your-domain.com/update?host=$HOSTNAME&domain=$DOMAIN&password=$PASSWORD&ip=$IP"
@itiligent
Copy link

itiligent commented Dec 10, 2023

Here's something that brings together several of the ideas above.

  • Prevents clobbering the Namecheap update servers
  • Only relies on core internet services from OpenDNS/dnsOmatic infrastructure (robust and purpose buit for ddns use cases)
  • Will also discover AWS public DHCP IP addresses properly if you have a lot of internal RFC1918 DNS going on.
#!/bin/sh
# Shell script to update Namecheap.com dynamic dns

DDNS_HOSTNAME=hostname
DDNS_DOMAIN=example.com
DDNS_PASSWORD=XXXXXXXXXXX

CURRENT_IP=$(curl myip.dnsomatic.com)
CURRENT_DDNS=$(dig +short $DDNS_HOSTNAME.$DDNS_DOMAIN @resolver1.opendns.com)

echo "current Namecheap ddns record = $CURRENT_DDNS"
echo "current AWS public IP address = $CURRENT_IP"

if [ "$CURRENT_DDNS" != "$CURRENT_IP" ]; then
    curl "https://dynamicdns.park-your-domain.com/update?
host=$DDNS_HOSTNAME&domain=$DDNS_DOMAIN&password=$DDNS_PASSWORD&ip=$CURRENT_IP"
fi

@alexspurling
Copy link

What the heck is park-your-domain.com and why would I send them my namecheap credentials? Is this a scam?

@dalhundal
Copy link
Author

dalhundal commented Jan 14, 2024 via email

@alexspurling
Copy link

Thanks - I did search and didn't find any mention of park-your-domain.com in Namecheap's documentation. Why don't they use namecheap.com or api.namecheap.com as their API domain?

@dalhundal
Copy link
Author

dalhundal commented Jan 14, 2024 via email

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