luci-app-233ddns: bump to v1.0-2

This commit is contained in:
CN_SZTL 2020-02-23 00:28:58 +08:00
parent 8afc94b352
commit 96cf0c862a
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
7 changed files with 74 additions and 43 deletions

View File

@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-233ddns
PKG_VERSION:=1.0
PKG_RELEASE:=1
PKG_RELEASE:=2
LUCI_TITLE:=LuCI support for 233DDNS
LUCI_DEPENDS:=+busybox +coreutils-sha512sum +curl
LUCI_DEPENDS:=+wget
LUCI_PKGARCH:=all
PKG_MAINTAINER:=[CTCGFW]Project-OpenWrt

View File

@ -11,4 +11,12 @@ function index()
local page
page = entry({"admin", "services", "233ddns"}, cbi("233ddns"), _("233DDNS"), 100)
page.dependent = true
end
entry({"admin", "services", "233ddns", "status"},call("act_status")).leaf=true
end
function act_status()
local e={}
e.running=luci.sys.call("grep -q 'u.233.ro' '/etc/crontabs/root'")==0
luci.http.prepare_content("application/json")
luci.http.write_json(e)
end

View File

@ -3,29 +3,23 @@
conf_token = luci.sys.exec("uci get 233ddns.@233ddns[0].token 2>/dev/null")
if (conf_token == nil or conf_token == '') then
conf_token = luci.sys.exec("cat /dev/urandom | head -n 10 | md5sum | head -c 10")
conf_token = luci.sys.exec("ifconfig -a |grep eth0 |sed -n 1p |awk '{print $5}' |md5sum |head -c 10")
end
ddns_domain = luci.sys.exec("/etc/init.d/233ddns gen_subdomain " .. conf_token)
mp = Map("233ddns", translate("233DDNS"))
mp.description = translate("A simple, fast, security DDNS client, powered by Oxygen233.") .. "<br/>" .. translate("Instructions for use:") .." https://233.ro/archives/233DDNS.html<br/>" .. translate("Please add u.233.ro to your whitelist if you use proxies program.")
mp.description = translate("A simple, fast, security DDNS client, powered by Oxygen233.") .. "<br/>" .. translate("Instructions for use:") .." https://233.ro/archives/233DDNS.html<br/>" .. translate("Please add u.233.ro to your whitelist if you use proxy programs.")
s = mp:section(TypedSection, "233ddns")
s.anonymous=true
s.addremove=false
enable = s:option(Flag, "enable", translate("Enable"))
enable.description = translate("Your DDNS domain is") .. " " .. ddns_domain .. translate(".233ddns.me")
enable.description = translate("No need to register, simply select \"Enable\" and apply the configure, and you will have your own DDNS domain.")
enable.default = 0
enable.rmempty = false
push_ipv6 = s:option(Flag, "push_ipv6", translate("Push IPv6 address"))
push_ipv6.description = translate("Push IPv6 record to remote instead of IPv4.")
push_ipv6.default = 0
push_ipv6.rmempty = false
token = s:option(Value, "token", translate("Token"))
token.description = translate("Must be 10 in length.")
token.description = translate("Must be 10 in length. You can change it anytime, but notice the DDNS domain will be changed simultaneously.")
token.default = conf_token
token.placeholder = conf_token
token.datatype = "string"

View File

@ -0,0 +1,51 @@
<script type="text/javascript">//<![CDATA[
XHR.poll(3, '<%=url([[admin]], [[services]], [[233ddns]], [[status]])%>', null,
function(x, data) {
var tb = document.getElementById('233ddns_status');
if (data && tb) {
if (data.running) {
tb.innerHTML = '<em><b><font color=green><%:Your DDNS domain is%> '+get_domain()+'.233ddns.me</font></b></em>';
} else {
tb.innerHTML = '<em><b><font color=red>233DDNS <%:NOT RUNNING%></font></b></em>';
}
}
}
);
function get_domain(){
var token = '<%=luci.sys.exec("uci get 233ddns.@233ddns[0].token 2>/dev/null"):gsub("^%s*(.-)%s*$", "%1")%>';
var domain = SHA512(token).substring(0,10);
return domain;
};
function SHA512(str){function int64(msint_32,lsint_32){this.highOrder=msint_32;this.lowOrder=lsint_32;}
var H=[new int64(0x6a09e667,0xf3bcc908),new int64(0xbb67ae85,0x84caa73b),new int64(0x3c6ef372,0xfe94f82b),new int64(0xa54ff53a,0x5f1d36f1),new int64(0x510e527f,0xade682d1),new int64(0x9b05688c,0x2b3e6c1f),new int64(0x1f83d9ab,0xfb41bd6b),new int64(0x5be0cd19,0x137e2179)];var K=[new int64(0x428a2f98,0xd728ae22),new int64(0x71374491,0x23ef65cd),new int64(0xb5c0fbcf,0xec4d3b2f),new int64(0xe9b5dba5,0x8189dbbc),new int64(0x3956c25b,0xf348b538),new int64(0x59f111f1,0xb605d019),new int64(0x923f82a4,0xaf194f9b),new int64(0xab1c5ed5,0xda6d8118),new int64(0xd807aa98,0xa3030242),new int64(0x12835b01,0x45706fbe),new int64(0x243185be,0x4ee4b28c),new int64(0x550c7dc3,0xd5ffb4e2),new int64(0x72be5d74,0xf27b896f),new int64(0x80deb1fe,0x3b1696b1),new int64(0x9bdc06a7,0x25c71235),new int64(0xc19bf174,0xcf692694),new int64(0xe49b69c1,0x9ef14ad2),new int64(0xefbe4786,0x384f25e3),new int64(0x0fc19dc6,0x8b8cd5b5),new int64(0x240ca1cc,0x77ac9c65),new int64(0x2de92c6f,0x592b0275),new int64(0x4a7484aa,0x6ea6e483),new int64(0x5cb0a9dc,0xbd41fbd4),new int64(0x76f988da,0x831153b5),new int64(0x983e5152,0xee66dfab),new int64(0xa831c66d,0x2db43210),new int64(0xb00327c8,0x98fb213f),new int64(0xbf597fc7,0xbeef0ee4),new int64(0xc6e00bf3,0x3da88fc2),new int64(0xd5a79147,0x930aa725),new int64(0x06ca6351,0xe003826f),new int64(0x14292967,0x0a0e6e70),new int64(0x27b70a85,0x46d22ffc),new int64(0x2e1b2138,0x5c26c926),new int64(0x4d2c6dfc,0x5ac42aed),new int64(0x53380d13,0x9d95b3df),new int64(0x650a7354,0x8baf63de),new int64(0x766a0abb,0x3c77b2a8),new int64(0x81c2c92e,0x47edaee6),new int64(0x92722c85,0x1482353b),new int64(0xa2bfe8a1,0x4cf10364),new int64(0xa81a664b,0xbc423001),new int64(0xc24b8b70,0xd0f89791),new int64(0xc76c51a3,0x0654be30),new int64(0xd192e819,0xd6ef5218),new int64(0xd6990624,0x5565a910),new int64(0xf40e3585,0x5771202a),new int64(0x106aa070,0x32bbd1b8),new int64(0x19a4c116,0xb8d2d0c8),new int64(0x1e376c08,0x5141ab53),new int64(0x2748774c,0xdf8eeb99),new int64(0x34b0bcb5,0xe19b48a8),new int64(0x391c0cb3,0xc5c95a63),new int64(0x4ed8aa4a,0xe3418acb),new int64(0x5b9cca4f,0x7763e373),new int64(0x682e6ff3,0xd6b2b8a3),new int64(0x748f82ee,0x5defb2fc),new int64(0x78a5636f,0x43172f60),new int64(0x84c87814,0xa1f0ab72),new int64(0x8cc70208,0x1a6439ec),new int64(0x90befffa,0x23631e28),new int64(0xa4506ceb,0xde82bde9),new int64(0xbef9a3f7,0xb2c67915),new int64(0xc67178f2,0xe372532b),new int64(0xca273ece,0xea26619c),new int64(0xd186b8c7,0x21c0c207),new int64(0xeada7dd6,0xcde0eb1e),new int64(0xf57d4f7f,0xee6ed178),new int64(0x06f067aa,0x72176fba),new int64(0x0a637dc5,0xa2c898a6),new int64(0x113f9804,0xbef90dae),new int64(0x1b710b35,0x131c471b),new int64(0x28db77f5,0x23047d84),new int64(0x32caab7b,0x40c72493),new int64(0x3c9ebe0a,0x15c9bebc),new int64(0x431d67c4,0x9c100d4c),new int64(0x4cc5d4be,0xcb3e42b6),new int64(0x597f299c,0xfc657e2a),new int64(0x5fcb6fab,0x3ad6faec),new int64(0x6c44198c,0x4a475817)];var W=new Array(64);var a,b,c,d,e,f,g,h,i,j;var T1,T2;var charsize=8;function utf8_encode(str){return unescape(encodeURIComponent(str));}
function str2binb(str){var bin=[];var mask=(1<<charsize)-1;var len=str.length*charsize;for(var i=0;i<len;i+=charsize){bin[i>>5]|=(str.charCodeAt(i/charsize)&mask)<<(32-charsize-(i % 32));}
return bin;}
function binb2hex(binarray){var hex_tab='0123456789abcdef';var str='';var length=binarray.length*4;var srcByte;for(var i=0;i<length;i+=1){srcByte=binarray[i>>2]>>((3-(i % 4))*8);str+=hex_tab.charAt((srcByte>>4)&0xF)+hex_tab.charAt(srcByte&0xF);}
return str;}
function safe_add_2(x,y){var lsw,msw,lowOrder,highOrder;lsw=(x.lowOrder&0xFFFF)+(y.lowOrder&0xFFFF);msw=(x.lowOrder>>>16)+(y.lowOrder>>>16)+(lsw>>>16);lowOrder=((msw&0xFFFF)<<16)|(lsw&0xFFFF);lsw=(x.highOrder&0xFFFF)+(y.highOrder&0xFFFF)+(msw>>>16);msw=(x.highOrder>>>16)+(y.highOrder>>>16)+(lsw>>>16);highOrder=((msw&0xFFFF)<<16)|(lsw&0xFFFF);return new int64(highOrder,lowOrder);}
function safe_add_4(a,b,c,d){var lsw,msw,lowOrder,highOrder;lsw=(a.lowOrder&0xFFFF)+(b.lowOrder&0xFFFF)+(c.lowOrder&0xFFFF)+(d.lowOrder&0xFFFF);msw=(a.lowOrder>>>16)+(b.lowOrder>>>16)+(c.lowOrder>>>16)+(d.lowOrder>>>16)+(lsw>>>16);lowOrder=((msw&0xFFFF)<<16)|(lsw&0xFFFF);lsw=(a.highOrder&0xFFFF)+(b.highOrder&0xFFFF)+(c.highOrder&0xFFFF)+(d.highOrder&0xFFFF)+(msw>>>16);msw=(a.highOrder>>>16)+(b.highOrder>>>16)+(c.highOrder>>>16)+(d.highOrder>>>16)+(lsw>>>16);highOrder=((msw&0xFFFF)<<16)|(lsw&0xFFFF);return new int64(highOrder,lowOrder);}
function safe_add_5(a,b,c,d,e){var lsw,msw,lowOrder,highOrder;lsw=(a.lowOrder&0xFFFF)+(b.lowOrder&0xFFFF)+(c.lowOrder&0xFFFF)+(d.lowOrder&0xFFFF)+(e.lowOrder&0xFFFF);msw=(a.lowOrder>>>16)+(b.lowOrder>>>16)+(c.lowOrder>>>16)+(d.lowOrder>>>16)+(e.lowOrder>>>16)+(lsw>>>16);lowOrder=((msw&0xFFFF)<<16)|(lsw&0xFFFF);lsw=(a.highOrder&0xFFFF)+(b.highOrder&0xFFFF)+(c.highOrder&0xFFFF)+(d.highOrder&0xFFFF)+(e.highOrder&0xFFFF)+(msw>>>16);msw=(a.highOrder>>>16)+(b.highOrder>>>16)+(c.highOrder>>>16)+(d.highOrder>>>16)+(e.highOrder>>>16)+(lsw>>>16);highOrder=((msw&0xFFFF)<<16)|(lsw&0xFFFF);return new int64(highOrder,lowOrder);}
function maj(x,y,z){return new int64((x.highOrder&y.highOrder)^(x.highOrder&z.highOrder)^(y.highOrder&z.highOrder),(x.lowOrder&y.lowOrder)^(x.lowOrder&z.lowOrder)^(y.lowOrder&z.lowOrder));}
function ch(x,y,z){return new int64((x.highOrder&y.highOrder)^(~x.highOrder&z.highOrder),(x.lowOrder&y.lowOrder)^(~x.lowOrder&z.lowOrder));}
function rotr(x,n){if(n<=32){return new int64((x.highOrder>>>n)|(x.lowOrder<<(32-n)),(x.lowOrder>>>n)|(x.highOrder<<(32-n)));}else{return new int64((x.lowOrder>>>n)|(x.highOrder<<(32-n)),(x.highOrder>>>n)|(x.lowOrder<<(32-n)));}}
function sigma0(x){var rotr28=rotr(x,28);var rotr34=rotr(x,34);var rotr39=rotr(x,39);return new int64(rotr28.highOrder^rotr34.highOrder^rotr39.highOrder,rotr28.lowOrder^rotr34.lowOrder^rotr39.lowOrder);}
function sigma1(x){var rotr14=rotr(x,14);var rotr18=rotr(x,18);var rotr41=rotr(x,41);return new int64(rotr14.highOrder^rotr18.highOrder^rotr41.highOrder,rotr14.lowOrder^rotr18.lowOrder^rotr41.lowOrder);}
function gamma0(x){var rotr1=rotr(x,1),rotr8=rotr(x,8),shr7=shr(x,7);return new int64(rotr1.highOrder^rotr8.highOrder^shr7.highOrder,rotr1.lowOrder^rotr8.lowOrder^shr7.lowOrder);}
function gamma1(x){var rotr19=rotr(x,19);var rotr61=rotr(x,61);var shr6=shr(x,6);return new int64(rotr19.highOrder^rotr61.highOrder^shr6.highOrder,rotr19.lowOrder^rotr61.lowOrder^shr6.lowOrder);}
function shr(x,n){if(n<=32){return new int64(x.highOrder>>>n,x.lowOrder>>>n|(x.highOrder<<(32-n)));}else{return new int64(0,x.highOrder<<(32-n));}}
str=utf8_encode(str);strlen=str.length*charsize;str=str2binb(str);str[strlen>>5]|=0x80<<(24-strlen % 32);str[(((strlen+128)>>10)<<5)+31]=strlen;for(var i=0;i<str.length;i+=32){a=H[0];b=H[1];c=H[2];d=H[3];e=H[4];f=H[5];g=H[6];h=H[7];for(var j=0;j<80;j++){if(j<16){W[j]=new int64(str[j*2+i],str[j*2+i+1]);}else{W[j]=safe_add_4(gamma1(W[j-2]),W[j-7],gamma0(W[j-15]),W[j-16]);}
T1=safe_add_5(h,sigma1(e),ch(e,f,g),K[j],W[j]);T2=safe_add_2(sigma0(a),maj(a,b,c));h=g;g=f;f=e;e=safe_add_2(d,T1);d=c;c=b;b=a;a=safe_add_2(T1,T2);}
H[0]=safe_add_2(a,H[0]);H[1]=safe_add_2(b,H[1]);H[2]=safe_add_2(c,H[2]);H[3]=safe_add_2(d,H[3]);H[4]=safe_add_2(e,H[4]);H[5]=safe_add_2(f,H[5]);H[6]=safe_add_2(g,H[6]);H[7]=safe_add_2(h,H[7]);}
var binarray=[];for(var i=0;i<H.length;i++){binarray.push(H[i].highOrder);binarray.push(H[i].lowOrder);}
return binb2hex(binarray);}
//]]>
</script>
<style>.mar-10 {margin-left: 50px; margin-right: 10px;}</style>
<fieldset class="cbi-section">
<p id="233ddns_status">
<em><%:Collecting data...%></em>
</p>
</fieldset>

View File

@ -7,26 +7,20 @@ msgstr "由 Oxygen233 驱动的一个简单、快速、安全的 DDNS 客户端
msgid "Instructions for use:"
msgstr "使用说明:"
msgid "Please add u.233.ro to your whitelist if you use proxies program."
msgid "Please add u.233.ro to your whitelist if you use proxy programs."
msgstr "如果您使用了代理程序,请将 u.233.ro 添加至白名单。"
msgid "Enable"
msgstr "启用"
msgid "No need to register, simply select \"Enable\" and apply the configure, and you will have your own DDNS domain."
msgstr "无需注册勾选“启用”并应用配置后即可拥有您自己的DDNS域名。"
msgid "Your DDNS domain is"
msgstr "您的DDNS域名是"
msgid ".ddns.233.ro"
msgstr ".ddns.233.ro"
msgid "Push IPv6 address"
msgstr "推送IPv6地址"
msgid "Push IPv6 record to remote instead of IPv4."
msgstr "将IPv6地址推送到远程而不是IPv4。"
msgid "Token"
msgstr "令牌"
msgid "Must be 10 in length."
msgstr "长度必须为10。"
msgid "Must be 10 in length. You can change it anytime, but notice the DDNS domain will be changed simultaneously."
msgstr "长度必须为10。可随意修改但请注意DDNS域名也会随之变动。"

View File

@ -1,5 +1,4 @@
config 233ddns
option enable '0'
option push_ipv6 '0'
option token ''

View File

@ -5,12 +5,7 @@
START=80
STOP=10
EXTRA_COMMANDS="gen_subdomain"
EXTRA_HELP=" gen_subdomain Generate a subdomain by token"
enable="$(uci get 233ddns.@233ddns[0].enable)"
push_ipv6="$(uci get 233ddns.@233ddns[0].push_ipv6)"
[ "${push_ipv6}" -eq "0" ] && curl_arg="-4" || curl_arg="-6"
token="$(uci get 233ddns.@233ddns[0].token)"
start()
@ -18,8 +13,8 @@ start()
stop
[ "${enable}" -ne "1" ] && exit 0
curl "${curl_arg}" -b "a=a" "https://u.233.ro/u/${token}"
echo "* * * * * curl ${curl_arg} -b \"a=a\" \"https://u.233.ro/u/${token}\"" >> "/etc/crontabs/root"
wget -4qO- --header="Cookie: a=a" "https://u.233.ro/u/${token}"
echo "* * * * * wget -4qO- --header=\"Cookie: a=a\" \"https://u.233.ro/u/${token}\"" >> "/etc/crontabs/root"
/etc/init.d/cron restart
}
@ -28,13 +23,3 @@ stop()
sed -i '/u.233.ro/d' "/etc/crontabs/root"
/etc/init.d/cron restart
}
restart()
{
stop
start
}
gen_subdomain() {
echo -n "$1" |sha512sum |head -c 10
}