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/"
@ -28,11 +28,7 @@ dns_ali_add() {
_add_record_query "$_domain" "$_sub_domain" "$txtvalue"
if ! _ali_rest; then
return 1
fi
return 0
_ali_rest
}
dns_ali_rm() {
@ -72,8 +68,8 @@ _get_root() {
}
_ali_rest() {
signature=$(echo -n "GET&%2F&$(_urlencode "$query")" | _hmac "sha1" "$(_hex "$Ali_Secret&")" | _base64)
signature=$(_urlencode "$signature")
signature=$(echo -n "GET&%2F&$(_ali_urlencode "$query")" | _hmac "sha1" "$(_hex "$Ali_Secret&")" | _base64)
signature=$(_ali_urlencode "$signature")
url="$Ali_API?$query&Signature=$signature"
if ! response="$(_get "$url")"; then
@ -93,12 +89,10 @@ _ali_rest() {
return 0
}
_urlencode() {
local dataLength="${#1}"
local index
for ((index = 0; index < dataLength; index++)); do
char="${1:index:1}"
_ali_urlencode() {
echo -n "$1" \
| sed -e 's/\(.\)/\1\n/g' \
| while read -r char; do
case $char in [a-zA-Z0-9.~_-])
printf "%s" "$char"
;;
@ -117,7 +111,7 @@ _check_exist_query() {
query=$query'&Format=json'
query=$query'&RRKeyWord=_acme-challenge'
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'&Timestamp='$(_timestamp)
query=$query'&TypeKeyWord=TXT'
@ -132,7 +126,7 @@ _add_record_query() {
query=$query'&Format=json'
query=$query'&RR='$2
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'&Timestamp='$(_timestamp)
query=$query'&Type=TXT'
@ -147,7 +141,7 @@ _delete_record_query() {
query=$query'&Format=json'
query=$query'&RecordId='$1
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'&Timestamp='$(_timestamp)
query=$query'&Version=2015-01-09'
@ -160,7 +154,7 @@ _describe_records_query() {
query=$query'&DomainName='$1
query=$query'&Format=json'
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'&Timestamp='$(_timestamp)
query=$query'&Version=2015-01-09'