Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #------------------------------------------------------------
- # This is a modification of the script found here:
- # https://github.com/TheGuywithTheHat/noip-ipv6-duc
- # The original dev wrote it because the noip-duc
- # tends to ignore ipv6 changes.
- # I could not get it to work with curl (as in the original).
- # So, I use lynx -dump and also toss errors into /dev/null
- # to keep it running.
- # I have probably introduced some bugs.
- # This works for me. Might not for you. Original might be
- # better for your purposes... who knows?
- # I make no guarantees about the reliability of this script.
- # -Phillip J Rhoades
- #------------------------------------------------------------
- interface="YOUR NETWORK INTERFACE (eth0,wps,etc)"
- user="YOUR-NOIP-EMAIL-USERNAME"
- pass="YOUR-NOIP-PASSWORD"
- hostname="YOUR.NOIP.HOST.NAME"
- url="https://dynupdate.no-ip.com/nic/update"
- agent="Personal noip-ducv6/linux-v1.0"
- lastaddr=''
- update_ip () {
- export addr=$(ip -6 addr show dev $interface | sed -e'/inet6/,/scope global/s/^.*inet6 \([^ ]*\)\/.*scope global.*$/\1/;t;d'|head -n1 2>/dev/null)
- if [[ $lastaddr != $addr ]] && [[ $addr != "" ]]; then
- echo "updating to $addr"
- set -e
- out=$(lynx -auth="$user:$pass" -dump "https://dynupdate.no-ip.com/nic/update?myipv6=$addr&hostname=$hostname" 2>/dev/null)
- echo $out
- if [[ $out == nochg* ]] || [[ $out == good* ]]; then
- lastaddr=$addr
- elif [[ $out == 911 ]]; then
- echo "911 response, waiting 30 minutes"
- sleep 25m
- else
- echo "FINE"
- #exit 1
- fi
- fi
- }
- update_ip
- while sleep 5m; do
- update_ip
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement