mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 14:23:38 +00:00
ddns-scripts_dnspod: login with token (#10985)
This commit is contained in:
parent
0f03d8c619
commit
8d608bb816
@ -6,10 +6,10 @@
|
|||||||
|
|
||||||
#检查外部调用工具
|
#检查外部调用工具
|
||||||
WGET_SSL='wget'
|
WGET_SSL='wget'
|
||||||
[ -n "$WGET_SSL" ] || write_log 13 "GNU Wget support is required to use Alibaba Cloud API. Please install first"
|
[ -n "$WGET_SSL" ] || write_log 13 "GNU Wget support is required to use dnspod API. Please install first"
|
||||||
|
|
||||||
# 变量声明
|
# 变量声明
|
||||||
local __URLBASE __HOST __DOMAIN __TYPE __CMDBASE __TOKEN __POST __POST1 __RECIP __RECID __value __TTL
|
local __URLBASE __HOST __DOMAIN __TYPE __CMDBASE __POST __POST1 __RECIP __RECID __value __TTL
|
||||||
__URLBASE="https://api.dnspod.com/"
|
__URLBASE="https://api.dnspod.com/"
|
||||||
|
|
||||||
# 从 $domain 分离主机和域名
|
# 从 $domain 分离主机和域名
|
||||||
@ -60,34 +60,26 @@ dnspod_transfer() {
|
|||||||
local __A=$1
|
local __A=$1
|
||||||
local __CNT=0
|
local __CNT=0
|
||||||
local __ERR=0
|
local __ERR=0
|
||||||
local __B __C PID_SLEEP
|
local __B PID_SLEEP
|
||||||
case "$__A" in
|
case "$__A" in
|
||||||
0)
|
0)
|
||||||
__B="$__CMDBASE 'login_email=$username&login_password=$password&format=json' ${__URLBASE}Auth"
|
__B="$__CMDBASE '$__POST' ${__URLBASE}Record.List"
|
||||||
__C=$__B
|
|
||||||
;;
|
;;
|
||||||
1)
|
1)
|
||||||
__B="$__CMDBASE '$__POST' ${__URLBASE}Record.List"
|
__B="$__CMDBASE '$__POST1' ${__URLBASE}Record.Create"
|
||||||
__C=1
|
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
__B="$__CMDBASE '$__POST1' ${__URLBASE}Record.Create"
|
|
||||||
__C=1
|
|
||||||
;;
|
|
||||||
3)
|
|
||||||
__B="$__CMDBASE '$__POST1&record_id=$__RECID&ttl=$__TTL' ${__URLBASE}Record.Modify"
|
__B="$__CMDBASE '$__POST1&record_id=$__RECID&ttl=$__TTL' ${__URLBASE}Record.Modify"
|
||||||
__C=1
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
while : ; do
|
while : ; do
|
||||||
[ $__C -eq 1 ] && __C=$(echo -e "$__B" | sed -e "s/${__TOKEN#*,}/***PW***/g")
|
write_log 7 "#> $__B"
|
||||||
write_log 7 "#> $__C"
|
|
||||||
eval $__B
|
eval $__B
|
||||||
__ERR=`jsonfilter -i $DATFILE -e "@.status.code"`
|
__ERR=`jsonfilter -i $DATFILE -e "@.status.code"`
|
||||||
|
|
||||||
[ $__ERR -eq 1 ] && return 0
|
[ $__ERR -eq 1 ] && return 0
|
||||||
[ $__A -eq 1 ] && [ $__ERR -eq 10 ] && return 0
|
[ $__A -eq 0 ] && [ $__ERR -eq 10 ] && return 0
|
||||||
write_log 3 "Error message:[$(jsonfilter -i $DATFILE -e "@.status.message")]"
|
write_log 3 "Error message:[$(jsonfilter -i $DATFILE -e "@.status.message")]"
|
||||||
|
|
||||||
if [ $VERBOSE -gt 1 ]; then
|
if [ $VERBOSE -gt 1 ]; then
|
||||||
@ -108,14 +100,14 @@ dnspod_transfer() {
|
|||||||
|
|
||||||
#添加解析记录
|
#添加解析记录
|
||||||
add_domain() {
|
add_domain() {
|
||||||
dnspod_transfer 2
|
dnspod_transfer 1
|
||||||
write_log 7 "Add new parsing record [${__HOST}.${__DOMAIN}],[type:$__TYPE],[ip:$__IP] successfully!"
|
write_log 7 "Add new parsing record [${__HOST}.${__DOMAIN}],[type:$__TYPE],[ip:$__IP] successfully!"
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
#修改解析记录
|
#修改解析记录
|
||||||
update_domain() {
|
update_domain() {
|
||||||
dnspod_transfer 3
|
dnspod_transfer 2
|
||||||
write_log 7 "Modify new parsing record [${__HOST}.${__DOMAIN}],[type:$__TYPE],[ip:$__IP],[TTL:$__TTL] successfully!"
|
write_log 7 "Modify new parsing record [${__HOST}.${__DOMAIN}],[type:$__TYPE],[ip:$__IP],[TTL:$__TTL] successfully!"
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@ -123,11 +115,9 @@ update_domain() {
|
|||||||
#获取域名解析记录
|
#获取域名解析记录
|
||||||
describe_domain() {
|
describe_domain() {
|
||||||
ret=0
|
ret=0
|
||||||
|
__POST="login_token=$username,$password&format=json&domain=$__DOMAIN&sub_domain=$__HOST&record_type=$__TYPE"
|
||||||
|
__POST1="$__POST&value=$__IP&record_type=$__TYPE&record_line_id=0"
|
||||||
dnspod_transfer 0
|
dnspod_transfer 0
|
||||||
__TOKEN=`jsonfilter -i $DATFILE -e "@.user_token"`
|
|
||||||
__POST="user_token=$__TOKEN&format=json&domain=$__DOMAIN&sub_domain=$__HOST"
|
|
||||||
__POST1="$__POST&value=$__IP&record_type=$__TYPE&record_line=default"
|
|
||||||
dnspod_transfer 1
|
|
||||||
__TMP=`jsonfilter -i $DATFILE -e "@.records[@.type!='NS']"`
|
__TMP=`jsonfilter -i $DATFILE -e "@.records[@.type!='NS']"`
|
||||||
__value=`jsonfilter -s "$__TMP" -e "@.name"`
|
__value=`jsonfilter -s "$__TMP" -e "@.name"`
|
||||||
if [ "$__value" == "" ]; then
|
if [ "$__value" == "" ]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user