#!/bin/sh
arPass=arMail=
""
arIpAdress() {
local
inter=
"http://members.3322.org/dyndns/getip"
wget --quiet --no-check-certificate --output-document=- $inter
}
arNslookup() {
local
dnsvr=
"114.114.114.114"
nslookup
${1} $dnsvr |
tr
-d
'\n[:blank:]'
|
sed
's/.\+1 \([0-9\.]\+\)/\1/'
}
arApiPost() {
local
agent=
"AnripDdns/3.08(mail@anrip.com)"
local
inter=
"https://dnsapi.cn/${1:?'Info.Version'}"
local
param=
"login_email=${arMail}&login_password=${arPass}&format=json&${2}"
wget --quiet --no-check-certificate --output-document=- --user-agent=$agent --post-data $param $inter
}
arDdnsUpdate() {
local
domainID recordID recordRS recordCD
domainID=$(arApiPost
"Domain.Info"
"domain=${1}"
)
domainID=$(
echo
$domainID |
sed
's/.\+{"id":"\([0-9]\+\)".\+/\1/'
)
recordID=$(arApiPost
"Record.List"
"domain_id=${domainID}&sub_domain=${2}"
)
recordID=$(
echo
$recordID |
sed
's/.\+\[{"id":"\([0-9]\+\)".\+/\1/'
)
recordRS=$(arApiPost
"Record.Ddns"
"domain_id=${domainID}&record_id=${recordID}&sub_domain=${2}&record_line=默认"
)
recordCD=$(
echo
$recordRS |
sed
's/.\+{"code":"\([0-9]\+\)".\+/\1/'
)
if
[
"$recordCD"
==
"1"
];
then
echo
$recordRS |
sed
's/.\+,"value":"\([0-9\.]\+\)".\+/\1/'
return
1
fi
echo
$recordRS |
sed
's/.\+,"message":"\([^"]\+\)".\+/\1/'
}
arDdnsCheck() {
local
postRS
local
hostIP=$(arIpAdress)
local
lastIP=$(arNslookup
"${2}.${1}"
)
echo
"hostIP: ${hostIP}"
echo
"lastIP: ${lastIP}"
if
[
"$lastIP"
!=
"$hostIP"
];
then
postRS=$(arDdnsUpdate $1 $2)
echo
"postRS: ${postRS}"
if
[ $? -
ne
1 ];
then
return
0
fi
fi
return
1
}
arMail=
"user@anrip.com"
arPass=
"anrip.net"
arDdnsCheck
"anrip.com"
"lab"
arDdnsCheck
"anrip.net"
"lab"