Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/bash
- #script for ipv6 dynamic dns updating
- #based on https://blog.wirelessmoves.com/2016/01/how-to-get-that-dynamic-ipv6-address-to-the-dns-server.html
- #and on https://dynv6.com/docs/apis
- hostname=$HOSTNAME.dynv6.net
- device=$2
- #put your dynv6.com API token here
- token=***********************
- file=/opt/dynv6/.dynv6.addr6
- [ -e $file ] && old=`cat $file`
- if [ -z "$hostname" -o -z "$token" ]; then
- echo "Usage: token=<your-authentication-token> [netmask=64] $0 your-name.dynv6.net [device]"
- exit 1
- fi
- if [ -z "$netmask" ]; then
- netmask=128
- fi
- if [ -n "$device" ]; then
- device="dev $device"
- fi
- address=$(ip -6 addr list scope global mngtmpaddr $device | grep -v " fd" | sed -n 's/.*inet6 \([0-9a-f:]\+\).*/\1/p' | head -n 1)
- if [ -e /usr/bin/curl ]; then
- bin="curl -fsS"
- elif [ -e /usr/bin/wget ]; then
- bin="wget -O-"
- else
- echo "neither curl nor wget found"
- exit 1
- fi
- if [ -z "$address" ]; then
- echo "no IPv6 address found"
- exit 1
- fi
- # address with netmask
- current=$address/$netmask
- if [ "$old" = "$current" ]; then
- echo "IPv6 address unchanged"
- exit
- fi
- # send addresses to dynv6
- $bin "http://dynv6.com/api/update?hostname=$hostname&ipv6=$current&token=$token"
- echo "http://dynv6.com/api/update?hostname=$hostname&ipv6=$current&token=$token"
- # save current address
- echo $current > $file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement