├── aliddns.tar.gz └── aliddns ├── res └── icon-aliddns.png ├── scripts ├── aliddns_config.sh └── aliddns_update.sh ├── install.sh └── webs └── Module_aliddns.asp /aliddns.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyriosli/koolshare-aliddns/HEAD/aliddns.tar.gz -------------------------------------------------------------------------------- /aliddns/res/icon-aliddns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kyriosli/koolshare-aliddns/HEAD/aliddns/res/icon-aliddns.png -------------------------------------------------------------------------------- /aliddns/scripts/aliddns_config.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [ "`dbus get aliddns_enable`" = "1" ]; then 4 | dbus delay aliddns_timer `dbus get aliddns_interval` /koolshare/scripts/aliddns_update.sh 5 | else 6 | dbus remove __delay__aliddns_timer 7 | fi 8 | -------------------------------------------------------------------------------- /aliddns/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cp -r /tmp/aliddns/* /koolshare/ 4 | chmod a+x /koolshare/scripts/aliddns_* 5 | 6 | # add icon into softerware center 7 | dbus set softcenter_module_aliddns_install=1 8 | dbus set softcenter_module_aliddns_version=0.4 9 | dbus set softcenter_module_aliddns_description="阿里云解析自动更新IP" 10 | -------------------------------------------------------------------------------- /aliddns/scripts/aliddns_update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | eval `dbus export aliddns_` 4 | 5 | if [ "$aliddns_enable" != "1" ]; then 6 | echo "not enable" 7 | exit 8 | fi 9 | 10 | now=`date` 11 | 12 | die () { 13 | echo $1 14 | dbus ram aliddns_last_act="$now: failed($1)" 15 | } 16 | 17 | [ "$aliddns_curl" = "" ] && aliddns_curl="curl -s whatismyip.akamai.com" 18 | [ "$aliddns_dns" = "" ] && aliddns_dns="223.5.5.5" 19 | [ "$aliddns_ttl" = "" ] && aliddns_ttl="600" 20 | 21 | ip=`$aliddns_curl 2>&1` || die "$ip" 22 | 23 | current_ip=`nslookup $aliddns_name.$aliddns_domain $aliddns_dns 2>&1` 24 | 25 | if [ "$?" -eq "0" ] 26 | then 27 | current_ip=`echo "$current_ip" | grep 'Address 1' | tail -n1 | awk '{print $NF}'` 28 | 29 | if [ "$ip" = "$current_ip" ] 30 | then 31 | echo "skipping" 32 | dbus set aliddns_last_act="$now: skipped($ip)" 33 | exit 0 34 | fi 35 | fi 36 | 37 | 38 | timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"` 39 | 40 | urlencode() { 41 | # urlencode 42 | out="" 43 | while read -n1 c 44 | do 45 | case $c in 46 | [a-zA-Z0-9._-]) out="$out$c" ;; 47 | *) out="$out`printf '%%%02X' "'$c"`" ;; 48 | esac 49 | done 50 | echo -n $out 51 | } 52 | 53 | enc() { 54 | echo -n "$1" | urlencode 55 | } 56 | 57 | send_request() { 58 | local args="AccessKeyId=$aliddns_ak&Action=$1&Format=json&$2&Version=2015-01-09" 59 | local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddns_sk&" -binary | openssl base64) 60 | curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")" 61 | } 62 | 63 | get_recordid() { 64 | grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"' 65 | } 66 | 67 | query_recordid() { 68 | send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddns_name.$aliddns_domain&Timestamp=$timestamp" 69 | } 70 | 71 | update_record() { 72 | send_request "UpdateDomainRecord" "RR=$aliddns_name&RecordId=$1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddns_ttl&Timestamp=$timestamp&Type=A&Value=$ip" 73 | } 74 | 75 | add_record() { 76 | send_request "AddDomainRecord&DomainName=$aliddns_domain" "RR=$aliddns_name&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddns_ttl&Timestamp=$timestamp&Type=A&Value=$ip" 77 | } 78 | 79 | if [ "$aliddns_record_id" = "" ] 80 | then 81 | aliddns_record_id=`query_recordid | get_recordid` 82 | fi 83 | if [ "$aliddns_record_id" = "" ] 84 | then 85 | aliddns_record_id=`add_record | get_recordid` 86 | echo "added record $aliddns_record_id" 87 | else 88 | update_record $aliddns_record_id 89 | echo "updated record $aliddns_record_id" 90 | fi 91 | 92 | # save to file 93 | if [ "$aliddns_record_id" = "" ]; then 94 | # failed 95 | dbus ram aliddns_last_act="$now: failed" 96 | else 97 | dbus ram aliddns_record_id=$aliddns_record_id 98 | dbus ram aliddns_last_act="$now: success($ip)" 99 | fi -------------------------------------------------------------------------------- /aliddns/webs/Module_aliddns.asp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Aliddns 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 29 | 127 | 128 |
  26 | 27 | 28 | 30 | 31 | 32 | 33 | 34 | 123 | 124 |
35 |
36 | 37 | 38 | 119 | 120 |
39 |
 
40 |
Aliddns - 设置
41 |
42 |
43 |
Aliddns是一款基于阿里云解析的私人ddns解决方案。  点击查看插件详情
44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 54 | 68 | 69 | 70 | 71 | 74 | 75 | 76 | 77 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 |
Aliddns - 设置面板
52 | 53 | 55 |
56 | 65 |
66 |
67 |
上次运行 72 | <% dbus_get_def("aliddns_last_act", "--"); %> 73 |
app key 78 | " class="input_ss_table"> 79 |
app secret" class="input_ss_table">
检查周期" class="input_ss_table">s
域名 92 | " class="input_ss_table" 93 | >." class="input_ss_table"> 94 |
DNS服务器(?)">
获得IP命令(?)
TTL(?)">s (1~86400)
109 |
110 | 111 |
112 |
113 |
114 | 论坛技术支持: www.koolshare.cn
115 | Github项目: github.com/koolshare
116 | Shell by: kyrios , Web by: kyrios 117 |
118 |
121 |
122 |
125 | 126 |
129 | 130 | 208 | 209 | 210 | 211 | --------------------------------------------------------------------------------