This commit is contained in:
lc 2016-11-21 13:01:39 +08:00
parent a54bccb90a
commit b567b19464

View File

@ -2,7 +2,6 @@
Ali_API='https://alidns.aliyuncs.com/' Ali_API='https://alidns.aliyuncs.com/'
#Usage: dns_ali_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" #Usage: dns_ali_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
dns_ali_add() { dns_ali_add() {
fulldomain=$1 fulldomain=$1
@ -28,9 +27,9 @@ dns_ali_add() {
_rest _rest
record_id=`_process_check_result` record_id=$(_process_check_result)
if [ $record_id == 0 ];then if [ $record_id == 0 ]; then
#Add #Add
_add_record_query "$_domain" "$_sub_domain" "$txtvalue" _add_record_query "$_domain" "$_sub_domain" "$txtvalue"
else else
@ -40,11 +39,12 @@ dns_ali_add() {
_rest _rest
echo $response echo $response
return 0 return 0
} }
dns_ali_rm() { dns_ali_rm() {
fulldomain=$1 fulldomain=$1
} }
@ -62,12 +62,11 @@ _get_root() {
return 1 return 1
fi fi
_describe_records_query $h _describe_records_query $h
if ! _rest; then if ! _rest; then
return 1 return 1
fi fi
if _contains "$response" "PageNumber"; then if _contains "$response" "PageNumber"; then
_sub_domain=$(printf "%s" "$domain" | cut -d . -f 1-$p) _sub_domain=$(printf "%s" "$domain" | cut -d . -f 1-$p)
_debug _sub_domain "$_sub_domain" _debug _sub_domain "$_sub_domain"
@ -82,9 +81,9 @@ _get_root() {
} }
_rest() { _rest() {
signature=`_sign $query` signature=$(_sign $query)
signature=`_urlencode $signature` signature=$(_urlencode $signature)
url=${Ali_API}?${query}'&Signature='$signature url= ${Ali_API}?${query}'&Signature='$signature
response="$(_get "$url")" response="$(_get "$url")"
@ -96,12 +95,12 @@ _rest() {
return 0 return 0
} }
_urlencode(){ _urlencode() {
python -c "import sys, urllib as ul;print ul.quote_plus('$1')" python -c "import sys, urllib as ul;print ul.quote_plus('$1')"
} }
_check_exist_query(){ _check_exist_query() {
query='' query=''
query=$query'AccessKeyId='$Ali_Key query=$query'AccessKeyId='$Ali_Key
query=$query'&Action=DescribeDomainRecords' query=$query'&Action=DescribeDomainRecords'
@ -111,12 +110,12 @@ _check_exist_query(){
query=$query'&SignatureMethod=HMAC-SHA1' query=$query'&SignatureMethod=HMAC-SHA1'
query=$query'&SignatureNonce='$RANDOM query=$query'&SignatureNonce='$RANDOM
query=$query'&SignatureVersion=1.0' query=$query'&SignatureVersion=1.0'
query=$query'&Timestamp='`_time` query=$query'&Timestamp='$(_time)
query=$query'&TypeKeyWord=TXT' query=$query'&TypeKeyWord=TXT'
query=$query'&Version=2015-01-09' query=$query'&Version=2015-01-09'
} }
_add_record_query(){ _add_record_query() {
query='' query=''
query=$query'AccessKeyId='$Ali_Key query=$query'AccessKeyId='$Ali_Key
query=$query'&Action=AddDomainRecord' query=$query'&Action=AddDomainRecord'
@ -126,13 +125,13 @@ _add_record_query(){
query=$query'&SignatureMethod=HMAC-SHA1' query=$query'&SignatureMethod=HMAC-SHA1'
query=$query'&SignatureNonce='$RANDOM query=$query'&SignatureNonce='$RANDOM
query=$query'&SignatureVersion=1.0' query=$query'&SignatureVersion=1.0'
query=$query'&Timestamp='`_time` query=$query'&Timestamp='$(_time)
query=$query'&Type=TXT' query=$query'&Type=TXT'
query=$query'&Value='$3 query=$query'&Value='$3
query=$query'&Version=2015-01-09' query=$query'&Version=2015-01-09'
} }
_update_record_query(){ _update_record_query() {
query='' query=''
query=$query'AccessKeyId='$Ali_Key query=$query'AccessKeyId='$Ali_Key
query=$query'&Action=UpdateDomainRecord' query=$query'&Action=UpdateDomainRecord'
@ -142,13 +141,13 @@ _update_record_query(){
query=$query'&SignatureMethod=HMAC-SHA1' query=$query'&SignatureMethod=HMAC-SHA1'
query=$query'&SignatureNonce='$RANDOM query=$query'&SignatureNonce='$RANDOM
query=$query'&SignatureVersion=1.0' query=$query'&SignatureVersion=1.0'
query=$query'&Timestamp='`_time` query=$query'&Timestamp='$(_time)
query=$query'&Type=TXT' query=$query'&Type=TXT'
query=$query'&Value='$3 query=$query'&Value='$3
query=$query'&Version=2015-01-09' query=$query'&Version=2015-01-09'
} }
_describe_records_query(){ _describe_records_query() {
query='' query=''
query=$query'AccessKeyId='$Ali_Key query=$query'AccessKeyId='$Ali_Key
query=$query'&Action=DescribeDomainRecords' query=$query'&Action=DescribeDomainRecords'
@ -157,28 +156,28 @@ _describe_records_query(){
query=$query'&SignatureMethod=HMAC-SHA1' query=$query'&SignatureMethod=HMAC-SHA1'
query=$query'&SignatureNonce='$RANDOM query=$query'&SignatureNonce='$RANDOM
query=$query'&SignatureVersion=1.0' query=$query'&SignatureVersion=1.0'
query=$query'&Timestamp='`_time` query=$query'&Timestamp='$(_time)
query=$query'&Version=2015-01-09' query=$query'&Version=2015-01-09'
} }
_time(){ _time() {
zone=`date +%Z` zone=$(date +%Z)
sec=`date +%s` sec=$(date +%s)
t=`date -d "1970-01-01 $zone $sec sec" +%Y-%m-%dT%H:%M:%SZ` t=$(date -d "1970-01-01 $zone $sec sec" +%Y-%m-%dT%H:%M:%SZ)
t=`_urlencode $t` t=$(_urlencode $t)
echo $t echo $t
} }
_sign(){ _sign() {
StringToSign='GET&'`_urlencode '/'`'&' StringToSign='GET&'$(_urlencode '/')'&'
StringToSign=$StringToSign`_urlencode $1` StringToSign=$StringToSign$(_urlencode $1)
echo -n $StringToSign | openssl sha1 -hmac $Ali_Secret'&' -binary | openssl base64 echo -n $StringToSign | openssl sha1 -hmac $Ali_Secret'&' -binary | openssl base64
} }
_process_check_result(){ _process_check_result() {
python -c \ python -c \
" "
import json; import json;
result=json.loads('$response'); result=json.loads('$response');
if result.has_key('Message'): if result.has_key('Message'):
@ -192,4 +191,3 @@ for r in result['DomainRecords']['Record']:
print(0); print(0);
" "
} }