This commit is contained in:
lc 2016-11-23 08:56:10 +08:00
parent 4330332f00
commit 7dd0f550e8

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash #!/usr/bin/env sh
Ali_API="https://alidns.aliyuncs.com/" Ali_API="https://alidns.aliyuncs.com/"
@ -28,11 +28,7 @@ dns_ali_add() {
_add_record_query "$_domain" "$_sub_domain" "$txtvalue" _add_record_query "$_domain" "$_sub_domain" "$txtvalue"
if ! _ali_rest; then _ali_rest
return 1
fi
return 0
} }
dns_ali_rm() { dns_ali_rm() {
@ -72,8 +68,8 @@ _get_root() {
} }
_ali_rest() { _ali_rest() {
signature=$(echo -n "GET&%2F&$(_urlencode "$query")" | _hmac "sha1" "$(_hex "$Ali_Secret&")" | _base64) signature=$(echo -n "GET&%2F&$(_ali_urlencode "$query")" | _hmac "sha1" "$(_hex "$Ali_Secret&")" | _base64)
signature=$(_urlencode "$signature") signature=$(_ali_urlencode "$signature")
url="$Ali_API?$query&Signature=$signature" url="$Ali_API?$query&Signature=$signature"
if ! response="$(_get "$url")"; then if ! response="$(_get "$url")"; then
@ -93,12 +89,10 @@ _ali_rest() {
return 0 return 0
} }
_urlencode() { _ali_urlencode() {
local dataLength="${#1}" echo -n "$1" \
local index | sed -e 's/\(.\)/\1\n/g' \
| while read -r char; do
for ((index = 0; index < dataLength; index++)); do
char="${1:index:1}"
case $char in [a-zA-Z0-9.~_-]) case $char in [a-zA-Z0-9.~_-])
printf "%s" "$char" printf "%s" "$char"
;; ;;
@ -117,7 +111,7 @@ _check_exist_query() {
query=$query'&Format=json' query=$query'&Format=json'
query=$query'&RRKeyWord=_acme-challenge' query=$query'&RRKeyWord=_acme-challenge'
query=$query'&SignatureMethod=HMAC-SHA1' query=$query'&SignatureMethod=HMAC-SHA1'
query=$query"&SignatureNonce=$(cat /proc/sys/kernel/random/uuid)" query=$query"&SignatureNonce=`< /dev/urandom tr -dc A-Za-z | head -c 16`"
query=$query'&SignatureVersion=1.0' query=$query'&SignatureVersion=1.0'
query=$query'&Timestamp='$(_timestamp) query=$query'&Timestamp='$(_timestamp)
query=$query'&TypeKeyWord=TXT' query=$query'&TypeKeyWord=TXT'
@ -132,7 +126,7 @@ _add_record_query() {
query=$query'&Format=json' query=$query'&Format=json'
query=$query'&RR='$2 query=$query'&RR='$2
query=$query'&SignatureMethod=HMAC-SHA1' query=$query'&SignatureMethod=HMAC-SHA1'
query=$query"&SignatureNonce=$(cat /proc/sys/kernel/random/uuid)" query=$query"&SignatureNonce=`< /dev/urandom tr -dc A-Za-z | head -c 16`"
query=$query'&SignatureVersion=1.0' query=$query'&SignatureVersion=1.0'
query=$query'&Timestamp='$(_timestamp) query=$query'&Timestamp='$(_timestamp)
query=$query'&Type=TXT' query=$query'&Type=TXT'
@ -147,7 +141,7 @@ _delete_record_query() {
query=$query'&Format=json' query=$query'&Format=json'
query=$query'&RecordId='$1 query=$query'&RecordId='$1
query=$query'&SignatureMethod=HMAC-SHA1' query=$query'&SignatureMethod=HMAC-SHA1'
query=$query"&SignatureNonce=$(cat /proc/sys/kernel/random/uuid)" query=$query"&SignatureNonce=`< /dev/urandom tr -dc A-Za-z | head -c 16`"
query=$query'&SignatureVersion=1.0' query=$query'&SignatureVersion=1.0'
query=$query'&Timestamp='$(_timestamp) query=$query'&Timestamp='$(_timestamp)
query=$query'&Version=2015-01-09' query=$query'&Version=2015-01-09'
@ -160,7 +154,7 @@ _describe_records_query() {
query=$query'&DomainName='$1 query=$query'&DomainName='$1
query=$query'&Format=json' query=$query'&Format=json'
query=$query'&SignatureMethod=HMAC-SHA1' query=$query'&SignatureMethod=HMAC-SHA1'
query=$query"&SignatureNonce=$(cat /proc/sys/kernel/random/uuid)" query=$query"&SignatureNonce=`< /dev/urandom tr -dc A-Za-z | head -c 16`"
query=$query'&SignatureVersion=1.0' query=$query'&SignatureVersion=1.0'
query=$query'&Timestamp='$(_timestamp) query=$query'&Timestamp='$(_timestamp)
query=$query'&Version=2015-01-09' query=$query'&Version=2015-01-09'