luci-app-ssr-plus-Jo: sync with upstream source
This commit is contained in:
parent
9c8c7856b1
commit
4b55af17a4
@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-ssr-plus-Jo
|
||||
PKG_VERSION:=1.46
|
||||
PKG_VERSION:=1.47
|
||||
PKG_RELEASE:=8
|
||||
PKG_CONFIG_DEPENDS:= CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray \
|
||||
|
||||
@ -7,19 +7,17 @@ function index()
|
||||
return
|
||||
end
|
||||
if nixio.fs.access("/usr/bin/ssr-redir") then
|
||||
entry({"admin", "vpn"}, firstchild(), "VPN", 45).dependent = false
|
||||
entry({"admin", "vpn"}, firstchild(), "VPN", 45).dependent = false
|
||||
entry({"admin", "vpn", "shadowsocksr"},alias("admin", "vpn", "shadowsocksr", "client"), _("ShadowSocksR Plus+"),10).dependent = true
|
||||
entry({"admin", "vpn", "shadowsocksr", "client"},cbi("shadowsocksr/client"),_("SSR Client"),10).leaf = true
|
||||
entry({"admin", "vpn", "shadowsocksr", "servers"}, cbi("shadowsocksr/servers"), _("Severs Nodes"), 11).leaf = true
|
||||
entry({"admin", "vpn", "shadowsocksr", "servers"},arcombine(cbi("shadowsocksr/servers"), cbi("shadowsocksr/client-config")),_("Severs Nodes"), 11).leaf = true
|
||||
entry({"admin", "vpn", "shadowsocksr", "servers"}, cbi("shadowsocksr/servers"), _("Node List"), 11).leaf = true
|
||||
entry({"admin", "vpn", "shadowsocksr", "servers"},arcombine(cbi("shadowsocksr/servers"), cbi("shadowsocksr/client-config")),_("Node List"), 11).leaf = true
|
||||
|
||||
entry({"admin", "vpn", "shadowsocksr", "subscription"},cbi("shadowsocksr/subscription"), _("Subscription Managenent"),12).leaf = true
|
||||
entry({"admin", "vpn", "shadowsocksr", "subscription"},cbi("shadowsocksr/subscription"), _("Subscription"),12).leaf = true
|
||||
entry({"admin", "vpn", "shadowsocksr", "control"},cbi("shadowsocksr/control"),_("Access Control"),13).leaf = true
|
||||
|
||||
entry({"admin", "vpn", "shadowsocksr", "list"},cbi("shadowsocksr/list"),_("GFW List"),15).leaf = true
|
||||
entry({"admin", "vpn", "shadowsocksr", "servers-list"}, cbi("shadowsocksr/servers-list"), _("Severs Nodes"), 14).leaf = true
|
||||
entry({"admin", "vpn", "shadowsocksr", "appointlist"},form("shadowsocksr/appointlist"),_("Appointlist List"), 17).leaf = true
|
||||
|
||||
entry({"admin", "vpn", "shadowsocksr", "automatic"},cbi("shadowsocksr/automatic"), _("Automatic Switching"),20).leaf = true
|
||||
entry({"admin", "vpn", "shadowsocksr", "udp2raw"},cbi("shadowsocksr/udp2raw"),_("udp2raw tunnel"),16).leaf = true
|
||||
entry({"admin", "vpn", "shadowsocksr", "advanced"},cbi("shadowsocksr/advanced"), _("Advanced Settings"),21).leaf = true
|
||||
elseif nixio.fs.access("/usr/bin/ssr-server") then
|
||||
entry({"admin", "vpn", "shadowsocksr"},alias("admin", "vpn", "shadowsocksr", "server"), _("ShadowSocksR"),10).dependent = true
|
||||
@ -38,9 +36,77 @@ entry({"admin", "vpn", "shadowsocksr", "appointlist"},form("shadowsocksr/appoint
|
||||
entry({"admin", "vpn", "shadowsocksr", "run"}, call("act_status"))
|
||||
entry({"admin", "vpn", "shadowsocksr", "change"}, call("change_node"))
|
||||
entry({"admin", "vpn", "shadowsocksr", "allserver"}, call("get_servers"))
|
||||
entry({"admin", "vpn", "shadowsocksr", "subscribe"}, call("get_subscribe"))
|
||||
entry({"admin", "vpn", "shadowsocksr", "ping"}, call("act_ping")).leaf=true
|
||||
end
|
||||
function get_subscribe()
|
||||
|
||||
local cjson = require "cjson"
|
||||
local e = {}
|
||||
local uci = luci.model.uci.cursor()
|
||||
local auto_update = luci.http.formvalue("auto_update")
|
||||
local auto_update_time = luci.http.formvalue("auto_update_time")
|
||||
local proxy = luci.http.formvalue("proxy")
|
||||
local subscribe_url = luci.http.formvalue("subscribe_url")
|
||||
if subscribe_url ~= "[]" then
|
||||
local cmd1 = 'uci set shadowsocksr.@server_subscribe[0].auto_update="' ..
|
||||
auto_update .. '"'
|
||||
local cmd2 = 'uci set shadowsocksr.@server_subscribe[0].auto_update_time="' ..
|
||||
auto_update_time .. '"'
|
||||
local cmd3 = 'uci set shadowsocksr.@server_subscribe[0].proxy="' .. proxy .. '"'
|
||||
luci.sys.call('uci delete shadowsocksr.@server_subscribe[0].subscribe_url ')
|
||||
luci.sys.call(cmd1)
|
||||
luci.sys.call(cmd2)
|
||||
luci.sys.call(cmd3)
|
||||
for k, v in ipairs(cjson.decode(subscribe_url)) do
|
||||
luci.sys.call(
|
||||
'uci add_list shadowsocksr.@server_subscribe[0].subscribe_url="' .. v ..
|
||||
'"')
|
||||
end
|
||||
luci.sys.call('uci commit shadowsocksr')
|
||||
luci.sys.call(
|
||||
"nohup /usr/share/shadowsocksr/subscribe.sh >/www/check_update.htm 2>/dev/null &")
|
||||
|
||||
e.error = 0
|
||||
else
|
||||
e.error = 1
|
||||
end
|
||||
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(e)
|
||||
|
||||
end
|
||||
-- 获取所有节点
|
||||
function get_servers()
|
||||
local uci = luci.model.uci.cursor()
|
||||
local server_table = {}
|
||||
uci:foreach("shadowsocksr", "servers", function(s)
|
||||
s["name"] = s[".name"]
|
||||
table.insert(server_table,s)
|
||||
end)
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(server_table)
|
||||
end
|
||||
|
||||
-- 切换节点
|
||||
function change_node()
|
||||
local e={}
|
||||
local uci = luci.model.uci.cursor()
|
||||
local sid = luci.http.formvalue("set")
|
||||
local name = ""
|
||||
uci:foreach("shadowsocksr", "global", function(s)
|
||||
name = s[".name"]
|
||||
end)
|
||||
e.status = false
|
||||
e.sid = sid
|
||||
if sid ~= "" then
|
||||
uci:set("shadowsocksr", name, "global_server" , sid)
|
||||
luci.sys.call("uci commit shadowsocksr && /etc/init.d/shadowsocksr restart")
|
||||
e.status = true
|
||||
end
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(e)
|
||||
end
|
||||
|
||||
-- 检测全局服务器状态
|
||||
function act_status()
|
||||
@ -278,3 +344,33 @@ function check_ports()
|
||||
end
|
||||
|
||||
|
||||
-- 检测单个节点状态并返回连接速度
|
||||
function check_port()
|
||||
local sockets = require "socket"
|
||||
local set = luci.http.formvalue("host")
|
||||
local port = luci.http.formvalue("port")
|
||||
local retstring = ""
|
||||
local iret = 1
|
||||
iret = luci.sys.call(" ipset add ss_spec_wan_ac " .. set .. " 2>/dev/null")
|
||||
socket = nixio.socket("inet", "stream")
|
||||
socket:setopt("socket", "rcvtimeo", 3)
|
||||
socket:setopt("socket", "sndtimeo", 3)
|
||||
local t0 = sockets.gettime()
|
||||
ret = socket:connect(set, port)
|
||||
if tostring(ret) == "true" then
|
||||
socket:close()
|
||||
retstring = "1"
|
||||
else
|
||||
retstring = "0"
|
||||
end
|
||||
if iret == 0 then
|
||||
luci.sys.call(" ipset del ss_spec_wan_ac " .. set)
|
||||
end
|
||||
local t1 = sockets.gettime()
|
||||
local tt =t1 -t0
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json({ret = retstring , used = math.floor(tt*1000 + 0.5)})
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
@ -98,26 +98,34 @@ table.sort(key_table)
|
||||
|
||||
m = Map(shadowsocksr)
|
||||
|
||||
|
||||
|
||||
-- [[ haProxy ]]--
|
||||
|
||||
s = m:section(TypedSection, "global_haproxy", translate("haProxy settings"))
|
||||
-- [[ global ]]--
|
||||
s = m:section(TypedSection, "global", translate("Server failsafe auto swith settings"))
|
||||
s.anonymous = true
|
||||
|
||||
o = s:option(Flag, "admin_enable", translate("Enabling the Management Console"))
|
||||
o = s:option(Flag, "monitor_enable", translate("Enable Process Deamon"))
|
||||
o.rmempty = false
|
||||
o.default = 1
|
||||
o.default = "1"
|
||||
|
||||
o = s:option(Value, "admin_port", translate("Service Port"))
|
||||
o = s:option(Flag, "enable_switch", translate("Enable Auto Switch"))
|
||||
o.rmempty = false
|
||||
o.default = "1"
|
||||
|
||||
o = s:option(Value, "switch_time", translate("Switch check cycly(second)"))
|
||||
o.datatype = "uinteger"
|
||||
o.default = 1111
|
||||
o:depends("enable_switch", "1")
|
||||
o.default = 667
|
||||
|
||||
o = s:option(Value, "switch_timeout", translate("Check timout(second)"))
|
||||
o.datatype = "uinteger"
|
||||
o:depends("enable_switch", "1")
|
||||
o.default = 5
|
||||
|
||||
o = s:option(Value, "switch_try_count", translate("Check Try Count"))
|
||||
o.datatype = "uinteger"
|
||||
o:depends("enable_switch", "1")
|
||||
o.default = 3
|
||||
|
||||
o = s:option(Value, "admin_user", translate("User name"))
|
||||
o.default = "admin"
|
||||
|
||||
o = s:option(Value, "admin_password", translate("Password"))
|
||||
o.default = "root"
|
||||
|
||||
-- [[ SOCKS5 Proxy ]]--
|
||||
if nixio.fs.access("/usr/bin/ssr-local") then
|
||||
@ -147,109 +155,38 @@ o.rmempty = false
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- [[ udp2raw ]]--
|
||||
if nixio.fs.access("/usr/bin/udp2raw") then
|
||||
|
||||
s = m:section(TypedSection, "udp2raw", translate("udp2raw tunnel"))
|
||||
-- [[ adblock ]]--
|
||||
s = m:section(TypedSection, "global", translate("adblock settings"))
|
||||
s.anonymous = true
|
||||
|
||||
o = s:option(Flag, "udp2raw_enable", translate("Enable udp2raw"))
|
||||
o.default = 0
|
||||
o = s:option(Flag, "adblock", translate("Enable adblock"))
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "server", translate("Server Address"))
|
||||
o.datatype = "host"
|
||||
o.rmempty = false
|
||||
o = s:option(Value, "adblock_url", translate("adblock_url"))
|
||||
o.default = "https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt"
|
||||
|
||||
o = s:option(Value, "server_port", translate("Server Port"))
|
||||
o.datatype = "port"
|
||||
o.rmempty = false
|
||||
-- [[ haProxy ]]--
|
||||
|
||||
o = s:option(Value, "local_port", translate("Local Port"))
|
||||
o.datatype = "port"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "key", translate("Password"))
|
||||
o.password = true
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(ListValue, "raw_mode", translate("Raw Mode"))
|
||||
for _, v in ipairs(raw_mode) do o:value(v) end
|
||||
o.default = "faketcp"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(ListValue, "seq_mode", translate("Seq Mode"))
|
||||
for _, v in ipairs(seq_mode) do o:value(v) end
|
||||
o.default = "3"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(ListValue, "cipher_mode", translate("Cipher Mode"))
|
||||
for _, v in ipairs(cipher_mode) do o:value(v) end
|
||||
o.default = "xor"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(ListValue, "auth_mode", translate("Auth Mode"))
|
||||
for _, v in ipairs(auth_mode) do o:value(v) end
|
||||
o.default = "simple"
|
||||
o.rmempty = false
|
||||
|
||||
end
|
||||
|
||||
-- [[ udpspeeder ]]--
|
||||
if nixio.fs.access("/usr/bin/udpspeeder") then
|
||||
|
||||
s = m:section(TypedSection, "udpspeeder", translate("UDPspeeder"))
|
||||
s = m:section(TypedSection, "global_haproxy", translate("haProxy settings"))
|
||||
s.anonymous = true
|
||||
|
||||
o = s:option(Flag, "udpspeeder_enable", translate("Enable UDPspeeder"))
|
||||
o.default = 0
|
||||
o = s:option(Flag, "admin_enable", translate("Enabling the Management Console"))
|
||||
o.rmempty = false
|
||||
o.default = 1
|
||||
|
||||
o = s:option(Value, "server", translate("Server Address"))
|
||||
o.datatype = "host"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "server_port", translate("Server Port"))
|
||||
o.datatype = "port"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "local_port", translate("Local Port"))
|
||||
o.datatype = "port"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "key", translate("Password"))
|
||||
o.password = true
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(ListValue, "speeder_mode", translate("Speeder Mode"))
|
||||
for _, v in ipairs(speeder_mode) do o:value(v) end
|
||||
o.default = "0"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "fec", translate("Fec"))
|
||||
o.default = "20:10"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "mtu", translate("Mtu"))
|
||||
o = s:option(Value, "admin_port", translate("Service Port"))
|
||||
o.datatype = "uinteger"
|
||||
o.default = 1250
|
||||
o.rmempty = false
|
||||
o.default = 1111
|
||||
|
||||
o = s:option(Value, "queue_len", translate("Queue Len"))
|
||||
o.datatype = "uinteger"
|
||||
o.default = 200
|
||||
o.rmempty = false
|
||||
o = s:option(Value, "admin_user", translate("User name"))
|
||||
o.default = "admin"
|
||||
|
||||
o = s:option(Value, "timeout", translate("Fec Timeout"))
|
||||
o.datatype = "uinteger"
|
||||
o.default = 8
|
||||
o.rmempty = false
|
||||
o = s:option(Value, "admin_password", translate("Password"))
|
||||
o.default = "root"
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
return m
|
||||
|
||||
|
||||
|
||||
@ -39,7 +39,11 @@ o.datatype = "uinteger"
|
||||
o:depends("enable_switch", "1")
|
||||
o.default = 5
|
||||
|
||||
|
||||
o = s:option(Value, "switch_try_count", translate("Check Try Count"))
|
||||
o.datatype = "uinteger"
|
||||
o:depends("enable_switch", "1")
|
||||
o.default = 3
|
||||
|
||||
|
||||
return m
|
||||
|
||||
|
||||
@ -136,7 +136,9 @@ o:value("ss", translate("Shadowsocks"))
|
||||
end
|
||||
o.description = translate("Using incorrect encryption mothod may causes service fail to start")
|
||||
|
||||
|
||||
upload_conf = s:option(FileUpload, "")
|
||||
upload_conf.template = "cbi/other_upload2"
|
||||
upload_conf:depends("use_conf_file", 1)
|
||||
|
||||
o = s:option(Value, "alias", translate("Alias(optional)"))
|
||||
|
||||
@ -227,13 +229,13 @@ o.rmempty = true
|
||||
o.default = uuid
|
||||
o:depends("type", "v2ray")
|
||||
|
||||
-- 加密方式
|
||||
-- 鍔犲瘑鏂瑰紡
|
||||
o = s:option(ListValue, "security", translate("Encrypt Method"))
|
||||
for _, v in ipairs(securitys) do o:value(v, v:upper()) end
|
||||
o.rmempty = true
|
||||
o:depends("type", "v2ray")
|
||||
|
||||
-- 传输协议
|
||||
-- 浼犺緭鍗忚
|
||||
o = s:option(ListValue, "transport", translate("Transport"))
|
||||
o:value("tcp", "TCP")
|
||||
o:value("kcp", "mKCP")
|
||||
@ -243,50 +245,50 @@ o:value("quic", "QUIC")
|
||||
o.rmempty = true
|
||||
o:depends("type", "v2ray")
|
||||
|
||||
-- [[ TCP部分 ]]--
|
||||
-- [[ TCP閮ㄥ垎 ]]--
|
||||
|
||||
-- TCP伪装
|
||||
-- TCP浼
|
||||
o = s:option(ListValue, "tcp_guise", translate("Camouflage Type"))
|
||||
o:depends("transport", "tcp")
|
||||
o:value("none", translate("None"))
|
||||
o:value("http", "HTTP")
|
||||
o.rmempty = true
|
||||
|
||||
-- HTTP域名
|
||||
-- HTTP鍩熷悕
|
||||
o = s:option(DynamicList, "http_host", translate("HTTP Host"))
|
||||
o:depends("tcp_guise", "http")
|
||||
o.rmempty = true
|
||||
|
||||
-- HTTP路径
|
||||
-- HTTP璺緞
|
||||
o = s:option(DynamicList, "http_path", translate("HTTP Path"))
|
||||
o:depends("tcp_guise", "http")
|
||||
o.rmempty = true
|
||||
|
||||
-- [[ WS部分 ]]--
|
||||
-- [[ WS閮ㄥ垎 ]]--
|
||||
|
||||
-- WS域名
|
||||
-- WS鍩熷悕
|
||||
o = s:option(Value, "ws_host", translate("WebSocket Host"))
|
||||
o:depends("transport", "ws")
|
||||
o.rmempty = true
|
||||
|
||||
-- WS路径
|
||||
-- WS璺緞
|
||||
o = s:option(Value, "ws_path", translate("WebSocket Path"))
|
||||
o:depends("transport", "ws")
|
||||
o.rmempty = true
|
||||
|
||||
-- [[ H2部分 ]]--
|
||||
-- [[ H2閮ㄥ垎 ]]--
|
||||
|
||||
-- H2域名
|
||||
-- H2鍩熷悕
|
||||
o = s:option(DynamicList, "h2_host", translate("HTTP/2 Host"))
|
||||
o:depends("transport", "h2")
|
||||
o.rmempty = true
|
||||
|
||||
-- H2路径
|
||||
-- H2璺緞
|
||||
o = s:option(Value, "h2_path", translate("HTTP/2 Path"))
|
||||
o:depends("transport", "h2")
|
||||
o.rmempty = true
|
||||
|
||||
-- [[ QUIC部分 ]]--
|
||||
-- [[ QUIC閮ㄥ垎 ]]--
|
||||
|
||||
o = s:option(ListValue, "quic_security", translate("QUIC Security"))
|
||||
o:depends("transport", "quic")
|
||||
@ -309,7 +311,7 @@ o:value("wechat-video", translate("WechatVideo"))
|
||||
o:value("dtls", "DTLS 1.2")
|
||||
o:value("wireguard", "WireGuard")
|
||||
|
||||
-- [[ mKCP部分 ]]--
|
||||
-- [[ mKCP閮ㄥ垎 ]]--
|
||||
|
||||
o = s:option(ListValue, "kcp_guise", translate("Camouflage Type"))
|
||||
o:depends("transport", "kcp")
|
||||
@ -442,3 +444,4 @@ o:depends("type", "ss")
|
||||
end
|
||||
|
||||
return m
|
||||
|
||||
|
||||
@ -127,6 +127,12 @@ o:value("1", translate("1 Thread"))
|
||||
o:value("2", translate("2 Threads"))
|
||||
o:value("4", translate("4 Threads"))
|
||||
o:value("8", translate("8 Threads"))
|
||||
o:value("16", translate("16 Threads"))
|
||||
o:value("32", translate("32 Threads"))
|
||||
o:value("64", translate("64 Threads"))
|
||||
o:value("128", translate("128 Threads"))
|
||||
o:value("256", translate("256 Threads"))
|
||||
o:value("512", translate("512 Threads"))
|
||||
o.default = "0"
|
||||
o.rmempty = false
|
||||
|
||||
|
||||
@ -15,44 +15,49 @@ o.datatype = "ip4addr"
|
||||
o = s:taboption("wan_ac", DynamicList, "wan_fw_ips", translate("WAN Force Proxy IP"))
|
||||
o.datatype = "ip4addr"
|
||||
|
||||
o = s:taboption("wan_ac", DynamicList, "wan_fk_ips", translate("WAN Fk Proxy IP"))
|
||||
o.datatype = "ip4addr"
|
||||
|
||||
-- Part of LAN
|
||||
s:tab("lan_ac", translate("LAN IP AC"))
|
||||
|
||||
o = s:taboption("lan_ac", DynamicList, "lan_ac_ips", translate("LAN Bypassed Host List"))
|
||||
o = s:taboption("lan_ac", ListValue, "lan_ac_mode", translate("LAN Access Control"))
|
||||
o:value("0", translate("Disable"))
|
||||
o:value("w", translate("Allow listed only"))
|
||||
o:value("b", translate("Allow all except listed"))
|
||||
o.rmempty = false
|
||||
|
||||
o = s:taboption("lan_ac", DynamicList, "lan_ac_ips", translate("LAN Host List"))
|
||||
o.datatype = "ipaddr"
|
||||
luci.ip.neighbors({ family = 4 }, function(entry)
|
||||
if entry.reachable then
|
||||
o:value(entry.dest:string())
|
||||
end
|
||||
if entry.reachable then
|
||||
o:value(entry.dest:string())
|
||||
end
|
||||
end)
|
||||
o:depends("lan_ac_mode", "w")
|
||||
o:depends("lan_ac_mode", "b")
|
||||
|
||||
o = s:taboption("lan_ac", DynamicList, "lan_bp_ips", translate("LAN Bypassed Host List"))
|
||||
o.datatype = "ipaddr"
|
||||
luci.ip.neighbors({ family = 4 }, function(entry)
|
||||
if entry.reachable then
|
||||
o:value(entry.dest:string())
|
||||
end
|
||||
end)
|
||||
|
||||
o = s:taboption("lan_ac", DynamicList, "lan_fp_ips", translate("LAN Force Proxy Host List"))
|
||||
o.datatype = "ipaddr"
|
||||
luci.ip.neighbors({ family = 4 }, function(entry)
|
||||
if entry.reachable then
|
||||
o:value(entry.dest:string())
|
||||
end
|
||||
if entry.reachable then
|
||||
o:value(entry.dest:string())
|
||||
end
|
||||
end)
|
||||
|
||||
o = s:taboption("lan_ac", DynamicList, "lan_gm_ips", translate("Game Mode Host List"))
|
||||
o.datatype = "ipaddr"
|
||||
luci.ip.neighbors({ family = 4 }, function(entry)
|
||||
if entry.reachable then
|
||||
o:value(entry.dest:string())
|
||||
end
|
||||
if entry.reachable then
|
||||
o:value(entry.dest:string())
|
||||
end
|
||||
end)
|
||||
|
||||
-- s = m:section(TypedSection, "domain_white_list", translate("Domain White List"))
|
||||
-- s.template = "cbi/tblsection"
|
||||
-- s.anonymous = true
|
||||
-- s.addremove = true
|
||||
-- s.sortable = true
|
||||
|
||||
-- o = s:option(Value, "domain_names", translate("Domain name (keyword only)"))
|
||||
|
||||
-- Part of Self
|
||||
-- s:tab("self_ac", translate("Router Self AC"))
|
||||
-- o = s:taboption("self_ac",ListValue, "router_proxy", translate("Router Self Proxy"))
|
||||
@ -96,5 +101,4 @@ o.remove = function(self, section, value)
|
||||
NXFS.writefile(blockconf, "")
|
||||
end
|
||||
|
||||
m:section(SimpleSection).template = "shadowsocksr/myip"
|
||||
return m
|
||||
|
||||
@ -12,5 +12,4 @@ function t.cfgvalue()
|
||||
end
|
||||
t.readonly="readonly"
|
||||
|
||||
|
||||
return f
|
||||
return f
|
||||
@ -0,0 +1,23 @@
|
||||
local fs = require "nixio.fs"
|
||||
local conffile = "/etc/dnsmasq.oversea/base_list.conf"
|
||||
|
||||
f = SimpleForm("custom", translate("Oversea Custom List"))
|
||||
|
||||
t = f:field(TextValue, "conf")
|
||||
t.rmempty = true
|
||||
t.rows = 13
|
||||
function t.cfgvalue()
|
||||
return fs.readfile(conffile) or ""
|
||||
end
|
||||
|
||||
function f.handle(self, state, data)
|
||||
if state == FORM_VALID then
|
||||
if data.conf then
|
||||
fs.writefile(conffile, data.conf:gsub("\r\n", "\n"))
|
||||
luci.sys.call("/etc/init.d/dnsmasq restart")
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
return f
|
||||
@ -377,3 +377,4 @@ o:depends("type", "ssr")
|
||||
|
||||
return m
|
||||
|
||||
|
||||
|
||||
@ -113,3 +113,4 @@ o.width="10%"
|
||||
|
||||
m:append(Template("shadowsocksr/server_list"))
|
||||
return m
|
||||
|
||||
|
||||
@ -0,0 +1,80 @@
|
||||
-- Licensed to the public under the GNU General Public License v3.
|
||||
|
||||
local m, s, o
|
||||
local shadowsocksr = "shadowsocksr"
|
||||
|
||||
local uci = luci.model.uci.cursor()
|
||||
local server_count = 0
|
||||
uci:foreach("shadowsocksr", "servers", function(s)
|
||||
server_count = server_count + 1
|
||||
end)
|
||||
|
||||
local fs = require "nixio.fs"
|
||||
local sys = require "luci.sys"
|
||||
|
||||
m = Map(shadowsocksr)
|
||||
m:section(SimpleSection).template = "shadowsocksr/status"
|
||||
|
||||
|
||||
-- [[ Servers Manage ]]--
|
||||
s = m:section(TypedSection, "servers")
|
||||
s.anonymous = true
|
||||
s.addremove = true
|
||||
s.description = string.format(translate("Server Count") .. ": %d", server_count)
|
||||
s.sortable = true
|
||||
s.template = "cbi/tblsection"
|
||||
s.extedit = luci.dispatcher.build_url("admin/vpn/shadowsocksr/servers/%s")
|
||||
function s.create(...)
|
||||
local sid = TypedSection.create(...)
|
||||
if sid then
|
||||
luci.http.redirect(s.extedit % sid)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
o = s:option(DummyValue, "type", translate("Type"))
|
||||
function o.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or translate("")
|
||||
end
|
||||
|
||||
o = s:option(DummyValue, "alias", translate("Alias"))
|
||||
function o.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or translate("None")
|
||||
end
|
||||
|
||||
o = s:option(DummyValue, "server", translate("Server Address"))
|
||||
function o.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or "?"
|
||||
end
|
||||
|
||||
o = s:option(DummyValue, "server_port", translate("Server Port"))
|
||||
function o.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or "?"
|
||||
end
|
||||
|
||||
o = s:option(DummyValue, "encrypt_method", translate("Encrypt Method"))
|
||||
o.width="10%"
|
||||
|
||||
o = s:option(DummyValue, "protocol", translate("Protocol"))
|
||||
o.width="10%"
|
||||
|
||||
o = s:option(DummyValue, "obfs", translate("Obfs"))
|
||||
o.width="10%"
|
||||
o = s:option(Flag, "switch_enable", translate("Enable Auto Switch"))
|
||||
function o.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or "?"
|
||||
end
|
||||
if nixio.fs.access("/usr/bin/kcptun-client") then
|
||||
|
||||
o = s:option(Flag, "kcp_enable", translate("KcpTun"))
|
||||
function o.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or "?"
|
||||
end
|
||||
end
|
||||
o = s:option(DummyValue,"server",translate("Ping Latency"))
|
||||
o.template="shadowsocksr/ping"
|
||||
o.width="10%"
|
||||
|
||||
m:append(Template("shadowsocksr/server_list"))
|
||||
|
||||
return m
|
||||
@ -1,80 +1,62 @@
|
||||
-- Licensed to the public under the GNU General Public License v3.
|
||||
local d = require "luci.dispatcher"
|
||||
local fs = require "nixio.fs"
|
||||
local sys = require "luci.sys"
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
|
||||
local m, s, o
|
||||
local shadowsocksr = "shadowsocksr"
|
||||
|
||||
|
||||
local uci = luci.model.uci.cursor()
|
||||
local server_count = 0
|
||||
local server_table = {}
|
||||
uci:foreach("shadowsocksr", "servers", function(s)
|
||||
server_count = server_count + 1
|
||||
server_count = server_count + 1
|
||||
s["name"] = s[".name"]
|
||||
table.insert(server_table, s)
|
||||
end)
|
||||
|
||||
local name = ""
|
||||
uci:foreach("shadowsocksr", "global", function(s) name = s[".name"] end)
|
||||
|
||||
m = Map(shadowsocksr)
|
||||
m:section(SimpleSection).template = "shadowsocksr/status"
|
||||
-- [[ Servers Manage ]]--
|
||||
|
||||
m:section(SimpleSection).template = "shadowsocksr/status"
|
||||
|
||||
-- [[ Servers List ]]--
|
||||
s = m:section(TypedSection, "servers")
|
||||
s.anonymous = true
|
||||
s.description = string.format(translate("Server Count") .. ": %d", server_count)
|
||||
s.addremove = true
|
||||
s.sortable = true
|
||||
s.template = "cbi/tblsection"
|
||||
s.sortable = false
|
||||
|
||||
s.des = server_count
|
||||
s.current = uci:get("shadowsocksr", name, "global_server")
|
||||
s.template = "cbi/add"
|
||||
s.extedit = luci.dispatcher.build_url("admin/vpn/shadowsocksr/servers/%s")
|
||||
function s.create(...)
|
||||
local sid = TypedSection.create(...)
|
||||
if sid then
|
||||
luci.http.redirect(s.extedit % sid)
|
||||
return
|
||||
end
|
||||
if sid then
|
||||
luci.http.redirect(s.extedit % sid)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
o = s:option(DummyValue, "type", translate("Type"))
|
||||
function o.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or translate("")
|
||||
end
|
||||
function o.cfgvalue(...) return Value.cfgvalue(...) or translate("") end
|
||||
|
||||
o = s:option(DummyValue, "alias", translate("Alias"))
|
||||
function o.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or translate("None")
|
||||
end
|
||||
function o.cfgvalue(...) return Value.cfgvalue(...) or translate("None") end
|
||||
|
||||
o = s:option(DummyValue, "server", translate("Server Address"))
|
||||
function o.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or "?"
|
||||
end
|
||||
function o.cfgvalue(...) return Value.cfgvalue(...) or "?" end
|
||||
|
||||
o = s:option(DummyValue, "server_port", translate("Server Port"))
|
||||
function o.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or "?"
|
||||
end
|
||||
o = s:option(DummyValue, "encrypt_method", translate("Encrypt Method"))
|
||||
o.width="10%"
|
||||
|
||||
o = s:option(DummyValue, "protocol", translate("Protocol"))
|
||||
o.width="10%"
|
||||
|
||||
o = s:option(DummyValue, "obfs", translate("Obfs"))
|
||||
o.width="10%"
|
||||
|
||||
o = s:option(Flag, "switch_enable", translate("Enable Auto Switch"))
|
||||
function o.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or "?"
|
||||
end
|
||||
|
||||
function o.cfgvalue(...) return Value.cfgvalue(...) or "?" end
|
||||
|
||||
if nixio.fs.access("/usr/bin/kcptun-client") then
|
||||
|
||||
o = s:option(Flag, "kcp_enable", translate("KcpTun"))
|
||||
function o.cfgvalue(...)
|
||||
return Value.cfgvalue(...) or "?"
|
||||
end
|
||||
|
||||
o = s:option(DummyValue, "kcp_enable", translate("KcpTun"))
|
||||
function o.cfgvalue(...) return Value.cfgvalue(...) or "?" end
|
||||
|
||||
end
|
||||
o = s:option(DummyValue,"server",translate("Ping Latency"))
|
||||
o.template="shadowsocksr/ping"
|
||||
o.width="10%"
|
||||
|
||||
m:append(Template("shadowsocksr/server_list"))
|
||||
|
||||
return m
|
||||
|
||||
|
||||
@ -1,73 +1,74 @@
|
||||
-- Licensed to the public under the GNU General Public License v3.
|
||||
|
||||
local m, s, o
|
||||
local shadowsocksr = "shadowsocksr"
|
||||
|
||||
local shadowsocksr= "shadowsocksr"
|
||||
local uci = luci.model.uci.cursor()
|
||||
local server_count = 0
|
||||
uci:foreach("shadowsocksr", "servers", function(s)
|
||||
server_count = server_count + 1
|
||||
end)
|
||||
local server_table = {}
|
||||
local gfwmode=0
|
||||
local gfw_count=0
|
||||
local ip_count=0
|
||||
|
||||
if nixio.fs.access("/etc/dnsmasq.ssr/gfw_list.conf") then
|
||||
gfwmode=1
|
||||
end
|
||||
|
||||
local fs = require "nixio.fs"
|
||||
local sys = require "luci.sys"
|
||||
|
||||
if gfwmode==1 then
|
||||
gfw_count = tonumber(sys.exec("cat /etc/dnsmasq.ssr/gfw_list.conf | wc -l"))/2
|
||||
|
||||
end
|
||||
|
||||
|
||||
m = Map(shadowsocksr)
|
||||
m:section(SimpleSection).template = "shadowsocksr/status"
|
||||
-- [[ 节点订阅 ]]--
|
||||
|
||||
|
||||
s = m:section(TypedSection, "server_subscribe", translate("Node Subscribe"))
|
||||
s = m:section(TypedSection, "server_subscribe", translate("Subscription"))
|
||||
s.anonymous = true
|
||||
|
||||
o = s:option(Flag, "auto_update", translate("Auto Update"))
|
||||
o.rmempty = false
|
||||
o.description = translate("Auto Update Server subscription, GFW list and CHN route")
|
||||
|
||||
o = s:option(ListValue, "edition", translate("V2 Edition"))
|
||||
o:value(" 4.21.3 ", " 4.21.3 ")
|
||||
o:value("4.20.0", "4.20.0")
|
||||
o:value("4.19.1", "4.19.1")
|
||||
o:value("4.18.2", "4.18.2")
|
||||
o:value("4.18.1", "4.18.1")
|
||||
o:value("4.18.0", "4.18.0")
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(ListValue, "auto_update_time", translate("Update time (every day)"))
|
||||
for t = 0,23 do
|
||||
o:value(t, t..":00")
|
||||
o:value(t, t..":00")
|
||||
end
|
||||
o.default=2
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(DynamicList, "subscribe_url", translate("Subscribe URL"))
|
||||
o = s:option(DynamicList, "subscribe_url", translate("Subscribe URL"),
|
||||
translate("Before subscribing please click below to delete all servers in the subscription"))
|
||||
o.rmempty = true
|
||||
|
||||
o = s:option(Flag, "proxy", translate("Through proxy update"))
|
||||
o.rmempty = false
|
||||
o.description = translate("Through proxy update list, Not Recommended ")
|
||||
|
||||
o = s:option(Button,"update",translate("Update All Subscribe Severs"))
|
||||
o.inputstyle = "apply"
|
||||
o.write = function()
|
||||
luci.sys.exec("bash /usr/share/shadowsocksr/subscribe.sh >>/tmp/ssrplus.log 2>&1")
|
||||
luci.http.redirect(luci.dispatcher.build_url("admin", "vpn", "shadowsocksr", "servers"))
|
||||
end
|
||||
|
||||
o = s:option(Button,"update_v2ray",translate("Upgrade V2ray"))
|
||||
o.inputstyle = "reload"
|
||||
o.write = function()
|
||||
luci.sys.call("bash /usr/share/shadowsocksr/v2ray_update1.sh >>/tmp/ssrplus.log 2>&1")
|
||||
end
|
||||
o = s:option(DummyValue, "", "")
|
||||
o.rawhtml = true
|
||||
o.template = "shadowsocksr/update_subscribe"
|
||||
|
||||
|
||||
|
||||
o = s:option(Button,"delete",translate("Delete all severs"))
|
||||
o.inputstyle = "reset"
|
||||
o.description = string.format(translate("Server Count") .. ": %d", server_count)
|
||||
|
||||
|
||||
o.write = function()
|
||||
uci:delete_all("shadowsocksr", "servers", function(s) return true end)
|
||||
uci:save("shadowsocksr")
|
||||
luci.sys.call("uci commit shadowsocksr && /etc/init.d/shadowsocksr stop")
|
||||
luci.http.redirect(luci.dispatcher.build_url("admin", "vpn", "shadowsocksr", "servers"))
|
||||
return
|
||||
uci:delete_all("vssr", "servers", function(s) return true end)
|
||||
uci:commit("vssr")
|
||||
luci.sys.call("uci commit vssrsr && /etc/init.d/vssr stop")
|
||||
|
||||
luci.http.redirect(luci.dispatcher.build_url("admin", "vpn", "vssr", "servers"))
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
|
||||
return m
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,197 @@
|
||||
-- Copyright (C) 2017 yushi studio <ywb94@qq.com> github.com/ywb94
|
||||
-- Copyright (C) 2018 lean <coolsnowwolf@gmail.com> github.com/coolsnowwolf
|
||||
-- Licensed to the public under the GNU General Public License v3.
|
||||
|
||||
local m, s, sec, o, kcp_enable
|
||||
local shadowsocksr = "shadowsocksr"
|
||||
|
||||
|
||||
m = Map(shadowsocksr)
|
||||
|
||||
local server_table = {}
|
||||
local encrypt_methods = {
|
||||
"none",
|
||||
"table",
|
||||
"rc4",
|
||||
"rc4-md5-6",
|
||||
"rc4-md5",
|
||||
"aes-128-cfb",
|
||||
"aes-192-cfb",
|
||||
"aes-256-cfb",
|
||||
"aes-128-ctr",
|
||||
"aes-192-ctr",
|
||||
"aes-256-ctr",
|
||||
"bf-cfb",
|
||||
"camellia-128-cfb",
|
||||
"camellia-192-cfb",
|
||||
"camellia-256-cfb",
|
||||
"cast5-cfb",
|
||||
"des-cfb",
|
||||
"idea-cfb",
|
||||
"rc2-cfb",
|
||||
"seed-cfb",
|
||||
"salsa20",
|
||||
"chacha20",
|
||||
"chacha20-ietf",
|
||||
}
|
||||
|
||||
local protocol = {
|
||||
"origin",
|
||||
"verify_deflate",
|
||||
"auth_sha1_v4",
|
||||
"auth_aes128_sha1",
|
||||
"auth_aes128_md5",
|
||||
"auth_chain_a",
|
||||
"auth_chain_b",
|
||||
"auth_chain_c",
|
||||
"auth_chain_d",
|
||||
"auth_chain_e",
|
||||
"auth_chain_f",
|
||||
}
|
||||
|
||||
obfs = {
|
||||
"plain",
|
||||
"http_simple",
|
||||
"http_post",
|
||||
"random_head",
|
||||
"tls1.2_ticket_auth",
|
||||
}
|
||||
|
||||
local raw_mode = {
|
||||
"faketcp",
|
||||
"udp",
|
||||
"icmp",
|
||||
}
|
||||
|
||||
local seq_mode = {
|
||||
"0",
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
}
|
||||
|
||||
local cipher_mode = {
|
||||
"none",
|
||||
"xor",
|
||||
"aes128cbc",
|
||||
}
|
||||
|
||||
local auth_mode = {
|
||||
"none",
|
||||
"simple",
|
||||
"md5",
|
||||
"crc32",
|
||||
}
|
||||
|
||||
local speeder_mode = {
|
||||
"0",
|
||||
"1",
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
-- [[ udp2raw ]]--
|
||||
if nixio.fs.access("/usr/bin/udp2raw") then
|
||||
|
||||
s = m:section(TypedSection, "udp2raw", translate(" UDP2raw "))
|
||||
s.anonymous = true
|
||||
|
||||
o = s:option(Flag, "udp2raw_enable", translate("Enable udp2raw"))
|
||||
o.default = 0
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "server", translate("Server Address"))
|
||||
o.datatype = "host"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "server_port", translate("Server Port"))
|
||||
o.datatype = "port"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "local_port", translate("Local Port"))
|
||||
o.datatype = "port"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "key", translate("Password"))
|
||||
o.password = true
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(ListValue, "raw_mode", translate("Raw Mode"))
|
||||
for _, v in ipairs(raw_mode) do o:value(v) end
|
||||
o.default = "faketcp"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(ListValue, "seq_mode", translate("Seq Mode"))
|
||||
for _, v in ipairs(seq_mode) do o:value(v) end
|
||||
o.default = "3"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(ListValue, "cipher_mode", translate("Cipher Mode"))
|
||||
for _, v in ipairs(cipher_mode) do o:value(v) end
|
||||
o.default = "xor"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(ListValue, "auth_mode", translate("Auth Mode"))
|
||||
for _, v in ipairs(auth_mode) do o:value(v) end
|
||||
o.default = "simple"
|
||||
o.rmempty = false
|
||||
|
||||
end
|
||||
|
||||
-- [[ udpspeeder ]]--
|
||||
if nixio.fs.access("/usr/bin/udpspeeder") then
|
||||
|
||||
s = m:section(TypedSection, "udpspeeder", translate("UDPspeeder"))
|
||||
s.anonymous = true
|
||||
|
||||
o = s:option(Flag, "udpspeeder_enable", translate("Enable UDPspeeder"))
|
||||
o.default = 0
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "server", translate("Server Address"))
|
||||
o.datatype = "host"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "server_port", translate("Server Port"))
|
||||
o.datatype = "port"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "local_port", translate("Local Port"))
|
||||
o.datatype = "port"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "key", translate("Password"))
|
||||
o.password = true
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(ListValue, "speeder_mode", translate("Speeder Mode"))
|
||||
for _, v in ipairs(speeder_mode) do o:value(v) end
|
||||
o.default = "0"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "fec", translate("Fec"))
|
||||
o.default = "20:10"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "mtu", translate("Mtu"))
|
||||
o.datatype = "uinteger"
|
||||
o.default = 1250
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "queue_len", translate("Queue Len"))
|
||||
o.datatype = "uinteger"
|
||||
o.default = 200
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "timeout", translate("Fec Timeout"))
|
||||
o.datatype = "uinteger"
|
||||
o.default = 8
|
||||
o.rmempty = false
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
return m
|
||||
409
package/ctcgfw/luci-app-ssr-plus-Jo/luasrc/view/cbi/add.htm
Normal file
409
package/ctcgfw/luci-app-ssr-plus-Jo/luasrc/view/cbi/add.htm
Normal file
@ -0,0 +1,409 @@
|
||||
<style>
|
||||
.cbi-section-table-row {
|
||||
position: relative;
|
||||
background: #172b4d;
|
||||
margin: 10px;
|
||||
padding: 8px 15px 10px 65px;
|
||||
box-shadow: 0 0 1rem 0 rgba(136,152,170,.75);
|
||||
border-radius: .5rem;
|
||||
border: 0;
|
||||
color: #ffffff;
|
||||
text-align: left;
|
||||
line-height: 1.7em;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
transition: all 0.3s;
|
||||
|
||||
}
|
||||
|
||||
.incon.fast ,.cbi-section-table-row.fast{
|
||||
background: #009966!important;
|
||||
}
|
||||
|
||||
.incon.nopass ,.cbi-section-table-row.nopass{
|
||||
background: #dc3545 !important;
|
||||
}
|
||||
.incon.middle ,.cbi-section-table-row.middle{
|
||||
background: #fbc658 !important;
|
||||
}
|
||||
.incon.slow ,.cbi-section-table-row.slow{
|
||||
background: #fb6340 !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.host_con.fast{
|
||||
color: #00ff18;
|
||||
}
|
||||
|
||||
.host_con.nopass{
|
||||
color: #f5365c;
|
||||
}
|
||||
.host_con.middle{
|
||||
color: #ffff00;
|
||||
}
|
||||
.host_con.slow{
|
||||
color: #ffa200;
|
||||
}
|
||||
|
||||
.loadings {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(255,255,255,0.7);
|
||||
border-radius: .5rem;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 10;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 30px;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
.loadings.hide{
|
||||
opacity:0;
|
||||
visibility:hidden;
|
||||
pointer-events:none;
|
||||
}
|
||||
|
||||
.loadings span {
|
||||
animation: anim-rotate 2s infinite linear;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
.incon {
|
||||
display: inline-block;
|
||||
margin: 0.2em 0;
|
||||
}
|
||||
.incon:nth-child(2) {
|
||||
position: absolute;
|
||||
display:flex;
|
||||
align-items:center;
|
||||
justify-content: center;
|
||||
left: 0;
|
||||
top: -3px;
|
||||
width: 55px;
|
||||
height: 105%;
|
||||
border: 0;
|
||||
background: #00CED1;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.incon:nth-child(3) {
|
||||
padding-left: 0px;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.incon:nth-child(5) ,.incon:nth-child(6){
|
||||
display: none;
|
||||
}
|
||||
|
||||
.cbi-section-table-cell {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.ssr-button {
|
||||
background: none;
|
||||
color: #fff;
|
||||
padding: 0 0 0 0.8rem;
|
||||
}
|
||||
|
||||
.ssr-button:hover,
|
||||
.ssr-button:focus,
|
||||
.ssr-button:active {
|
||||
color: #fff;
|
||||
outline: 0;
|
||||
text-decoration: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
.cbi-section h3{
|
||||
margin-left:10px;
|
||||
margin-top:1rem;
|
||||
}
|
||||
.cbi-button-check {
|
||||
color: #fff !important;
|
||||
background-color: #008080 !important;
|
||||
border-color: #2e6da4 !important;
|
||||
font-size:14px;
|
||||
padding:0.5rem 0.8rem;
|
||||
float:right;
|
||||
margin-right:10px;
|
||||
margin-top:-0.5rem;
|
||||
}
|
||||
.cbi-section-table-cell{
|
||||
position:relative;
|
||||
}
|
||||
.host_con{
|
||||
position:absolute;
|
||||
left:0;
|
||||
width:50px;
|
||||
text-align: left;
|
||||
height:22px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.host_ok{
|
||||
color:#fff;
|
||||
background:#2dce89;
|
||||
padding: 0.1rem 0.5rem;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
.host_error{
|
||||
color:#fff;
|
||||
background:#f5365c;
|
||||
padding: 0.1rem 0.5rem;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
.cbi-button-add{
|
||||
position:fixed;
|
||||
padding: 0.3rem 0.5rem;
|
||||
z-index:1000;
|
||||
width:80px !important;
|
||||
height:80px;
|
||||
bottom:50px;
|
||||
right:60px;
|
||||
font-size:20px;
|
||||
border-radius:50%;
|
||||
display:block;
|
||||
background-color: #008080!important;
|
||||
border-color: #008080 !important;
|
||||
box-shadow: 0 0 1rem 0 rgba(136,152,170,.75);
|
||||
}
|
||||
.statused{
|
||||
position: absolute;
|
||||
z-index: 20;
|
||||
right: 0;
|
||||
top: 0;
|
||||
background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0i5Zu+5bGCXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMjAwIDIwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjAwIDIwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzZGOUEzNzt9DQoJLnN0MXtmaWxsOiNGRkZGRkY7fQ0KPC9zdHlsZT4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0wLjIsMGwxOTkuNiwyMDBMMjAwLDAuMkwwLjIsMHoiLz4NCjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNjQuNSw1MS4zTDEyMyw5My44Yy0wLjksMS0yLjEsMS40LTMuNCwxLjRjLTEuMywwLTIuNS0wLjQtMy40LTEuNEw5OSw3NS42Yy0xLjgtMS45LTEuNi00LjksMC40LTYuOA0KCWMyLTEuOSw1LTEuOSw2LjgsMGwxMy41LDE0LjJsMzcuNy0zOC42YzEuOC0xLjksNC44LTEuOSw2LjgsMEMxNjYuMSw0Ni40LDE2Ni4zLDQ5LjQsMTY0LjUsNTEuM0wxNjQuNSw1MS4zeiIvPg0KPC9zdmc+DQo=');
|
||||
background-size: contain;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
transition: all 0.2s;
|
||||
pointer-events: none;
|
||||
}
|
||||
.statused.hide{
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
}
|
||||
@media screen and (max-width: 1900px) {
|
||||
.pure-u-1-5{
|
||||
width:25%;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 1600px) {
|
||||
.pure-u-1-5{
|
||||
width:33.33333333%;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 1200px) {
|
||||
.pure-u-1-5{
|
||||
width:50%;
|
||||
}
|
||||
|
||||
.status .pure-u-1-5{
|
||||
width:33.333%;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 700px) {
|
||||
|
||||
.pure-u-1-5{
|
||||
width:100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.status .pure-u-1-5{
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<fieldset class="cbi-section" id="cbi-apply-shadowsocksr1" style="display: none;">
|
||||
<span class="panel-title">正在应用更改</span>
|
||||
<img src="/luci-static/resources/icons/loading.gif" alt="载入中" style="vertical-align:middle">
|
||||
</fieldset>
|
||||
<!-- tblsection -->
|
||||
<fieldset class="cbi-section" id="cbi-<%=self.config%>-<%=self.sectiontype%>">
|
||||
<button class="cbi-button cbi-button-check ">检查所有节点</button><span class="panel-title">服务器列表 (总计 <%- print(self.des)-%>个节点)</span>
|
||||
<div class="cbi-section-node">
|
||||
<%- local count = 0 -%>
|
||||
<div class="cbi-section-table pure-g">
|
||||
|
||||
<%- local isempty = true
|
||||
for i, k in ipairs(self:cfgsections()) do
|
||||
section = k
|
||||
isempty = false
|
||||
scope = { valueheader = "cbi/cell_valueheader", valuefooter = "cbi/cell_valuefooter" }
|
||||
-%>
|
||||
|
||||
<div class="pure-u-1-5">
|
||||
<div class="cbi-section-table-row " id="cbi-<%=self.config%>-<%=section%>">
|
||||
|
||||
<div class="loadings hide"><span class="icon-loading"></span></div>
|
||||
|
||||
<div class="incon type" ></div>
|
||||
<div class="incon alias"></div>
|
||||
<div class="incon switch_enable"></div>
|
||||
<div class="statused hide"></div>
|
||||
<%- if self.extedit or self.addremove then -%>
|
||||
<div class="cbi-section-table-cell">
|
||||
<div class="host_con">
|
||||
|
||||
</div>
|
||||
|
||||
<a class="cbi-button ssr-button " type="button" value="" onclick="apply_node('<%=section%>')" alt="应用" title="应用"><span class="icon-edit"></span> 应用</a>
|
||||
<%- if self.extedit then -%>
|
||||
<a class="cbi-button ssr-button " type="button" value=""
|
||||
<%- if type(self.extedit) == "string" then
|
||||
%> onclick="location.href='<%=self.extedit:format(section)%>'"
|
||||
<%- elseif type(self.extedit) == "function" then
|
||||
%> onclick="location.href='<%=self:extedit(section)%>'"
|
||||
<%- end
|
||||
%> alt="<%:Edit%>" title="<%:Edit%>" ><span class="icon-edit"></span> <%:Edit%></a>
|
||||
<%- end; if self.addremove then %>
|
||||
<button class="cbi-button ssr-button" type="submit" value="" onclick="this.form.cbi_state = 'del-section'; return true" name="cbi.rts.<%=self.config%>.<%=k%>" alt="<%:Delete%>" title="<%:Delete%>" /><span class="icon-delete"></span> <%:Delete%></button>
|
||||
<%- end -%>
|
||||
</div>
|
||||
<%- end -%>
|
||||
</div>
|
||||
</div>
|
||||
<%- end -%>
|
||||
|
||||
<%- if isempty then -%>
|
||||
<div class="cbi-section-table-row">
|
||||
<div colspan="<%=count%>"><em><br /><%:This section contains no values yet%></em></div>
|
||||
</div>
|
||||
<%- end -%>
|
||||
</div>
|
||||
|
||||
<% if self.error then %>
|
||||
<div class="cbi-section-error">
|
||||
<ul><% for _, c in pairs(self.error) do for _, e in ipairs(c) do -%>
|
||||
<li><%=pcdata(e):gsub("\n","<br />")%></li>
|
||||
<%- end end %></ul>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<%- if self.addremove then -%>
|
||||
<% if self.template_addremove then include(self.template_addremove) else -%>
|
||||
<div class="cbi-section-create cbi-tblsection-create">
|
||||
<% if self.anonymous then %>
|
||||
<input class="cbi-button cbi-button-add" type="submit" value="<%:Add%>" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" title="<%:Add%>" />
|
||||
<% else %>
|
||||
<% if self.invalid_cts then -%><div class="cbi-section-error"><% end %>
|
||||
<input type="text" class="cbi-section-create-name" id="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" data-type="uciname" data-optional="true" />
|
||||
<input class="cbi-button cbi-button-add" type="submit" onclick="this.form.cbi_state = 'add-section'; return true" value="<%:Add%>" title="<%:Add%>" />
|
||||
<% if self.invalid_cts then -%>
|
||||
<br /><%:Invalid%></div>
|
||||
<%- end %>
|
||||
<% end %>
|
||||
</div>
|
||||
<%- end %>
|
||||
<%- end -%>
|
||||
</div>
|
||||
</fieldset>
|
||||
<!-- /tblsection -->
|
||||
<script type="text/javascript">
|
||||
function apply_node(node){
|
||||
$("#cbi-apply-shadowsocksr1").show();
|
||||
$.get('<%=luci.dispatcher.build_url("admin", "vpn", "shadowsocksr","change")%>',
|
||||
{
|
||||
set:node
|
||||
},
|
||||
function (data, status) {
|
||||
$("#cbi-apply-shadowsocksr1").hide();
|
||||
|
||||
if (data.status ) {
|
||||
var id = '#cbi-<%=self.config%>-'+node;
|
||||
$(".statused").addClass("hide");
|
||||
$(id).find(".statused").removeClass("hide");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
setTimeout(function() { check(); }, 500);
|
||||
function check() {
|
||||
$(".host_con").html("");
|
||||
|
||||
$(".pure-u-1-5").each(function () {
|
||||
host = $(this).find(".cbi-section-table-row ").attr("server");
|
||||
port = $(this).find(".cbi-section-table-row ").attr("server_port");
|
||||
$(".host_con").text("--ms");
|
||||
check_port(host, port, this);
|
||||
});
|
||||
}
|
||||
|
||||
$.get('<%=luci.dispatcher.build_url("admin", "vpn", "shadowsocksr","allserver")%>',
|
||||
function (data) {
|
||||
$.each(data, function (i, val) {
|
||||
var id = '#cbi-<%=self.config%>-'+val.name;
|
||||
if(val.name == "<%=self.current%>"){
|
||||
$(id).find(".statused").removeClass("hide");
|
||||
}
|
||||
$(id).find(".type").text(val.type);
|
||||
$(id).find(".alias").text(val.alias);
|
||||
var switch_text = (val.switch_enable == 1)?'<span class="icon-switch" title="自动切换"></span>':'';
|
||||
$(id).find(".switch_enable").html(switch_text);
|
||||
$(id).attr("server",val.server);
|
||||
$(id).attr("server_port",val.server_port) ;
|
||||
});
|
||||
}, "json");
|
||||
|
||||
|
||||
|
||||
|
||||
function check_port(hosts, ports, target) {
|
||||
$.get('<%=luci.dispatcher.build_url("admin", "vpn", "shadowsocksr","checkport")%>',
|
||||
{
|
||||
host: hosts,
|
||||
port: ports
|
||||
},
|
||||
function (data, status) {
|
||||
$(target).find(".loadings").addClass("hide");
|
||||
$(target).find(".incon").removeClass("fast");
|
||||
$(target).find(".incon").removeClass("middle");
|
||||
$(target).find(".incon").removeClass("slow");
|
||||
$(target).find(".incon").removeClass("nopass");
|
||||
$(target).find(".host_con").removeClass("fast");
|
||||
$(target).find(".host_con").removeClass("middle");
|
||||
$(target).find(".host_con").removeClass("slow");
|
||||
$(target).find(".host_con").removeClass("nopass");
|
||||
if (data.ret == 1) {
|
||||
if (data.used <= 80) {
|
||||
$(target).find(".incon").eq(0).addClass("fast");
|
||||
$(target).find(".host_con").addClass("fast");
|
||||
} else if (data.used > 80 && data.used <= 200) {
|
||||
$(target).find(".incon").eq(0).addClass("middle");
|
||||
$(target).find(".host_con").addClass("middle");
|
||||
} else if (data.used > 200) {
|
||||
$(target).find(".incon").eq(0).addClass("slow");
|
||||
$(target).find(".host_con").addClass("slow");
|
||||
}
|
||||
$(target).find(".host_con").text(data.used + "ms");
|
||||
} else {
|
||||
$(target).find(".incon").eq(0).addClass("nopass");
|
||||
$(target).find(".host_con").addClass("nopass");
|
||||
$(target).find(".host_con").text("Error");
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$(".cbi-button-check").click(function () {
|
||||
check();
|
||||
return false;
|
||||
});
|
||||
//check();
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
<%+cbi/valueheader%>
|
||||
|
||||
<label class="cbi-value-title" style="display:inline-block; width: 180px" for="ulfile"><%:Choose local file:%></label>
|
||||
<input class="cbi-input-file" style="width: 400px" type="file" id="ulfile" name="ulfile" />
|
||||
|
||||
<%+cbi/valuefooter%>
|
||||
@ -1,6 +1,7 @@
|
||||
<%+cbi/valueheader%>
|
||||
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
|
||||
function check_connect(btn,urlname)
|
||||
{
|
||||
btn.disabled = true;
|
||||
@ -17,11 +18,15 @@
|
||||
s.innerHTML ="<font color='green'>"+"<%:Connect OK%>"+"</font>";
|
||||
else
|
||||
s.innerHTML ="<font color='red'>"+"<%:Connect Error%>"+"</font>";
|
||||
|
||||
|
||||
}
|
||||
|
||||
btn.disabled = false;
|
||||
btn.value = '<%:Check Connect%>';
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
//]]></script>
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
<%+cbi/valueheader%>
|
||||
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
|
||||
function check_port(btn)
|
||||
{
|
||||
btn.disabled = true;
|
||||
@ -12,12 +13,18 @@
|
||||
var s = document.getElementById('<%=self.option%>-status');
|
||||
if (s)
|
||||
{
|
||||
|
||||
s.innerHTML =rv.ret;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
btn.disabled = false;
|
||||
btn.value = '<%:Check Server%>';
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
//]]></script>
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="x-dns-prefetch-control" content="on">
|
||||
@ -73,6 +74,7 @@
|
||||
text-overflow: ellipsis;
|
||||
transform:translateY(10%);
|
||||
}
|
||||
|
||||
.sk-text-success {
|
||||
color: #32b643;
|
||||
font-size:15px;
|
||||
@ -85,6 +87,7 @@
|
||||
text-align: left;
|
||||
transform:translateY(10%);
|
||||
}
|
||||
|
||||
.sk-text-error {
|
||||
color: #e85600;
|
||||
font-size:15px;
|
||||
@ -97,16 +100,20 @@
|
||||
text-align: left;
|
||||
transform:translateY(10%);
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 5px 0 6px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<fieldset class="cbi-section">
|
||||
@ -163,7 +170,7 @@
|
||||
url2='https://ip.skk.moe';
|
||||
window.open(url2);
|
||||
}
|
||||
const $$ = document;
|
||||
const $$ = document;
|
||||
$$.getElementById('ip-webrtc').innerHTML = '查询中...';
|
||||
$$.getElementById('ip-pcol').innerHTML = '查询中...';
|
||||
$$.getElementById('ip-ipify').innerHTML = '查询中...';
|
||||
@ -194,7 +201,8 @@
|
||||
throw error;
|
||||
}),
|
||||
parseIPIpip: (ip, elID) => {
|
||||
IP.get(`https://api.skk.moe/network/parseIp/ipip/v3/${ip}`, 'json')
|
||||
|
||||
IP.get(`https://api.skk.moe/network/parseIp/ipip/v3/${ip}`, 'json')
|
||||
.then(resp => {
|
||||
let x = '';
|
||||
for (let i of resp.data) {
|
||||
@ -293,8 +301,8 @@
|
||||
$$.getElementById('ip-pcol-ipip').innerHTML = `${data.pro} ${data.city} ${data.region} ${pcisp[1]}`;
|
||||
};
|
||||
function getIpsbIP(data){
|
||||
$$.getElementById('ip-ipsb').innerHTML = data.ip;
|
||||
IP.parseIPIpip(data.ip, 'ip-ipsb-geo');
|
||||
$$.getElementById('ip-ipsb').innerHTML = data.address;
|
||||
$$.getElementById('ip-ipsb-geo').innerHTML = `${data.country} ${data.province} ${data.city} ${data.isp.name}`
|
||||
};
|
||||
|
||||
window.onload=myip_Load();
|
||||
@ -310,7 +318,7 @@
|
||||
var sbip = document.getElementsByTagName('HEAD').item(0);
|
||||
var sbipScript= document.createElement("script");
|
||||
sbipScript.defer = "defer";
|
||||
sbipScript.src='https://api-ipv4.ip.sb/jsonip?callback=getIpsbIP';
|
||||
sbipScript.src='https://ip.sb/addrinfo?callback=getIpsbIP';
|
||||
sbip.appendChild(sbipScript);
|
||||
|
||||
const $$ = document;
|
||||
@ -326,8 +334,8 @@
|
||||
$$.getElementById('ip-pcol-ipip').innerHTML = `${data.pro} ${data.city} ${data.region} ${pcisp[1]}`;
|
||||
};
|
||||
function getIpsbIP(data){
|
||||
$$.getElementById('ip-ipsb').innerHTML = data.ip;
|
||||
IP.parseIPIpip(data.ip, 'ip-ipsb-geo');
|
||||
$$.getElementById('ip-ipsb').innerHTML = data.address;
|
||||
$$.getElementById('ip-ipsb-geo').innerHTML = `${data.country} ${data.province} ${data.city} ${data.isp.name}`
|
||||
};
|
||||
|
||||
setTimeout("myip_Load()",1000*10);
|
||||
@ -335,6 +343,8 @@
|
||||
|
||||
</script>
|
||||
<script defer="defer" src="https://whois.pconline.com.cn/ipJson.jsp?callback=getPcolIP"></script>
|
||||
<script defer="defer" src="https://api-ipv4.ip.sb/jsonip?callback=getIpsbIP"></script>
|
||||
<script defer="defer" src="https://ip.sb/addrinfo?callback=getIpsbIP"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
|
||||
@ -1,15 +1,9 @@
|
||||
|
||||
<fieldset id="ShadowSocksR " class="cbi-section">
|
||||
|
||||
<h2 name=''content''> ShadowSocksR Plus+</h2>
|
||||
|
||||
<h2
|
||||
<div class="cbi-map-descr">一个运行在OpenWrt上的科学上网客户端,兼容<a href="https://github.com/shadowsocks/shadowsocks-libev" target="_blank"><em><u>Shadowsocks</u></em></a>、<a href="https://github.com/shadowsocksrr/shadowsocksr-libev" target="_blank"><em><u>ShadowsocksR</u></em></a> 、<a href="https://github.com/Ameykyl/trojan" target="_blank"><em><u>Trojan</u></em></a> 、<a href="https://github.com/v2ray/v2ray-core" target="_blank"><em><u>Vmess</u></em></a> 等协议的游戏加速工具。
|
||||
</h2></div>
|
||||
<style>
|
||||
.pure-g{letter-spacing:-.31em;text-rendering:optimizespeed;font-family:FreeSans,Arimo,"Droid Sans",Helvetica,Arial,sans-serif;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-align-content:flex-start;-ms-flex-line-pack:start;align-content:flex-start}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){table .pure-g{display:block}}.opera-only :-o-prefocus,.pure-g{word-spacing:-.43em}.pure-u,.pure-u-1,.pure-u-1-1,.pure-u-1-12,.pure-u-1-2,.pure-u-1-24,.pure-u-1-3,.pure-u-1-4,.pure-u-1-5,.pure-u-1-6,.pure-u-1-8,.pure-u-10-24,.pure-u-11-12,.pure-u-11-24,.pure-u-12-24,.pure-u-13-24,.pure-u-14-24,.pure-u-15-24,.pure-u-16-24,.pure-u-17-24,.pure-u-18-24,.pure-u-19-24,.pure-u-2-24,.pure-u-2-3,.pure-u-2-5,.pure-u-20-24,.pure-u-21-24,.pure-u-22-24,.pure-u-23-24,.pure-u-24-24,.pure-u-3-24,.pure-u-3-4,.pure-u-3-5,.pure-u-3-8,.pure-u-4-24,.pure-u-4-5,.pure-u-5-12,.pure-u-5-24,.pure-u-5-5,.pure-u-5-6,.pure-u-5-8,.pure-u-6-24,.pure-u-7-12,.pure-u-7-24,.pure-u-7-8,.pure-u-8-24,.pure-u-9-24{display:inline-block;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-g [class*=pure-u]{font-family:sans-serif}.pure-u-1-24{width:4.1667%}.pure-u-1-12,.pure-u-2-24{width:8.3333%}.pure-u-1-8,.pure-u-3-24{width:12.5%}.pure-u-1-6,.pure-u-4-24{width:16.6667%}.pure-u-1-5{width:20%}.pure-u-5-24{width:20.8333%}.pure-u-1-4,.pure-u-6-24{width:25%}.pure-u-7-24{width:29.1667%}.pure-u-1-3,.pure-u-8-24{width:33.3333%}.pure-u-3-8,.pure-u-9-24{width:37.5%}.pure-u-2-5{width:40%}.pure-u-10-24,.pure-u-5-12{width:41.6667%}.pure-u-11-24{width:45.8333%}.pure-u-1-2,.pure-u-12-24{width:50%}.pure-u-13-24{width:54.1667%}.pure-u-14-24,.pure-u-7-12{width:58.3333%}.pure-u-3-5{width:60%}.pure-u-15-24,.pure-u-5-8{width:62.5%}.pure-u-16-24,.pure-u-2-3{width:66.6667%}.pure-u-17-24{width:70.8333%}.pure-u-18-24,.pure-u-3-4{width:75%}.pure-u-19-24{width:79.1667%}.pure-u-4-5{width:80%}.pure-u-20-24,.pure-u-5-6{width:83.3333%}.pure-u-21-24,.pure-u-7-8{width:87.5%}.pure-u-11-12,.pure-u-22-24{width:91.6667%}.pure-u-23-24{width:95.8333%}.pure-u-1,.pure-u-1-1,.pure-u-24-24,.pure-u-6-6{width:100%}
|
||||
<style>
|
||||
.pure-g{letter-spacing:-.31em;text-rendering:optimizespeed;font-family:FreeSans,Arimo,"Droid Sans",Helvetica,Arial,sans-serif;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-align-content:flex-start;-ms-flex-line-pack:start;align-content:flex-start}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){table .pure-g{display:block}}.opera-only :-o-prefocus,.pure-g{word-spacing:-.43em}.pure-u,.pure-u-1,.pure-u-1-1,.pure-u-1-12,.pure-u-1-2,.pure-u-1-24,.pure-u-1-3,.pure-u-1-4,.pure-u-1-5,.pure-u-1-6,.pure-u-1-8,.pure-u-10-24,.pure-u-11-12,.pure-u-11-24,.pure-u-12-24,.pure-u-13-24,.pure-u-14-24,.pure-u-15-24,.pure-u-16-24,.pure-u-17-24,.pure-u-18-24,.pure-u-19-24,.pure-u-2-24,.pure-u-2-3,.pure-u-2-5,.pure-u-20-24,.pure-u-21-24,.pure-u-22-24,.pure-u-23-24,.pure-u-24-24,.pure-u-3-24,.pure-u-3-4,.pure-u-3-5,.pure-u-3-8,.pure-u-4-24,.pure-u-4-5,.pure-u-5-12,.pure-u-5-24,.pure-u-5-5,.pure-u-5-6,.pure-u-5-8,.pure-u-6-24,.pure-u-7-12,.pure-u-7-24,.pure-u-7-8,.pure-u-8-24,.pure-u-9-24{display:inline-block;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-g [class*=pure-u]{font-family:sans-serif}.pure-u-1-24{width:4.1667%}.pure-u-1-12,.pure-u-2-24{width:8.3333%}.pure-u-1-8,.pure-u-3-24{width:12.5%}.pure-u-1-6,.pure-u-4-24{width:16.6667%}.pure-u-1-5{width:20%}.pure-u-5-24{width:20.8333%}.pure-u-1-4,.pure-u-6-24{width:25%}.pure-u-7-24{width:29.1667%}.pure-u-1-3,.pure-u-8-24{width:33.3333%}.pure-u-3-8,.pure-u-9-24{width:37.5%}.pure-u-2-5{width:40%}.pure-u-10-24,.pure-u-5-12{width:41.6667%}.pure-u-11-24{width:45.8333%}.pure-u-1-2,.pure-u-12-24{width:50%}.pure-u-13-24{width:54.1667%}.pure-u-14-24,.pure-u-7-12{width:58.3333%}.pure-u-3-5{width:60%}.pure-u-15-24,.pure-u-5-8{width:62.5%}.pure-u-16-24,.pure-u-2-3{width:66.6667%}.pure-u-17-24{width:70.8333%}.pure-u-18-24,.pure-u-3-4{width:75%}.pure-u-19-24{width:79.1667%}.pure-u-4-5{width:80%}.pure-u-20-24,.pure-u-5-6{width:83.3333%}.pure-u-21-24,.pure-u-7-8{width:87.5%}.pure-u-11-12,.pure-u-22-24{width:91.6667%}.pure-u-23-24{width:95.8333%}.pure-u-1,.pure-u-1-1,.pure-u-24-24,.pure-u-6-6{width:100%}
|
||||
.status{
|
||||
margin: 1.5rem -0.5rem 0 -0.5rem;
|
||||
margin: 0rem -0.5rem -0.7rem -0.5rem;
|
||||
}
|
||||
.block{
|
||||
margin: 0.5rem 0.5rem;
|
||||
@ -21,24 +15,38 @@
|
||||
min-width: inherit;
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
border: 1px solid rgba(0,0,0,.05);
|
||||
border: 1px solid rgba(0,0,0,.20);
|
||||
border-radius: .375rem;
|
||||
background-color: #4 ;
|
||||
background-color: #4;
|
||||
box-shadow: 0 0 2rem 0 rgba(136,152,170,.15);
|
||||
|
||||
}
|
||||
.img-con{
|
||||
margin: 1rem;
|
||||
|
||||
}
|
||||
.green{
|
||||
font-size:1.25rem;
|
||||
color: #2dce89;
|
||||
}
|
||||
.red{
|
||||
color: #f5365c;
|
||||
font-size:1.25rem;
|
||||
color: #fb6340;
|
||||
}
|
||||
|
||||
.sk-text-success{
|
||||
color: #2dce89;
|
||||
}
|
||||
.sk-text-error{
|
||||
color: #fb6340;
|
||||
}
|
||||
.gap{
|
||||
margin-right:0.5rem;
|
||||
}
|
||||
.block img{
|
||||
max-width: 100%;
|
||||
width: 48px;
|
||||
height: auto;
|
||||
float:right;
|
||||
}
|
||||
.pure-u-5-8{
|
||||
display:flex;
|
||||
@ -46,179 +54,124 @@
|
||||
|
||||
}
|
||||
|
||||
.block h4{
|
||||
font-size: 1.3rem;
|
||||
font-weight: bold;
|
||||
margin: 0.75rem 0;
|
||||
|
||||
.block h4{
|
||||
font-size: .8125rem;
|
||||
font-weight: 600;
|
||||
margin: 1rem;
|
||||
color:#8898aa!important;
|
||||
line-height: 1.8em;
|
||||
}
|
||||
@media screen and (max-width: 1920px) {
|
||||
.block h4{
|
||||
font-size: 1.2rem;
|
||||
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 1690px) {
|
||||
.block h4{
|
||||
font-size: 1rem;
|
||||
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 1290px) {
|
||||
.block h4{
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
.pure-u-1-6{
|
||||
width:33.333%;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 700px) {
|
||||
|
||||
@media screen and (max-width: 720px) {
|
||||
.pure-u-1-6{
|
||||
width:50%;
|
||||
}
|
||||
.img-con{
|
||||
margin: 0.5rem;
|
||||
|
||||
}
|
||||
.block h4{
|
||||
font-size: 0.81rem;
|
||||
|
||||
.pure-u-1-2{
|
||||
width:100%;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<style>.mar-10 {margin-left: 50px; margin-right: 10px;}</style>
|
||||
<fieldset id="_Shadowsocks_fieldset" class="cbi-section">
|
||||
<legend>
|
||||
<%:Running Status%>
|
||||
</legend>
|
||||
<div class="pure-g status">
|
||||
<div class="pure-u-1-6">
|
||||
<div class="block pure-g" >
|
||||
<div class="pure-u-3-8">
|
||||
<div class="img-con">
|
||||
<img src="https://i.imgur.com/wzbtvXp.png" >
|
||||
|
||||
<style>.mar-10 {margin-left: 50px; margin-right: 10px;}</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="pure-g status">
|
||||
<div class="pure-u-1-6">
|
||||
<div class="block pure-g">
|
||||
<div class="pure-u-3-5">
|
||||
<h4 id="shadowsocksr_status"><%:Client%><br /><span class="red"><%:Not Running%></span></h4>
|
||||
</div>
|
||||
<div class="pure-u-2-5">
|
||||
<div class="img-con">
|
||||
<img src="https://i.imgur.com/wzbtvXp.png" >
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-5-8">
|
||||
<h4 id="shadowsocksr_status" >科学上网<br><span class="red">未运行✘</span></h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-1-6">
|
||||
<div class="block pure-g" >
|
||||
<div class="pure-u-3-8">
|
||||
<div class="img-con">
|
||||
<img src="https://i.imgur.com/3mE04AZ.png">
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-5-8">
|
||||
<h4 id="google_status">国外网站<br><span class="red">无法访问✘</span></h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-1-6">
|
||||
<div class="block pure-g" >
|
||||
<div class="pure-u-3-8">
|
||||
<div class="img-con">
|
||||
<img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0i5Zu+5bGCXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTAwIDEwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzMzODhGRjt9DQoJLnN0MXtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNGRkZGRkY7fQ0KPC9zdHlsZT4NCjxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjUwIiBjeT0iNTAiIHI9IjUwIi8+DQo8ZyBpZD0i5pCc57SiX+eGiuaOjF82Nmljb24iPg0KCTxnIGlkPSJsb2dvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjEuMjEyMTIxLCA5MC45MDkwOTEpIj4NCgkJPHBhdGggaWQ9IkZpbGwtMSIgY2xhc3M9InN0MSIgZD0iTS03OS43LTU1LjRjNC41LDAsOC41LTUuNCw4LjUtMTEuOWMwLTYuNS0zLjctMTEuOS04LjUtMTEuOWMtNC41LDAtOC41LDUuNC04LjUsMTEuOQ0KCQkJQy04Ny45LTYwLjctODQuMi01NS40LTc5LjctNTUuNCIvPg0KCQk8cGF0aCBpZD0iRmlsbC0zIiBjbGFzcz0ic3QxIiBkPSJNLTU5LjktNTQuNWM2LjIsMC44LDEwLjItNS43LDExLTEwLjhjMC44LTQuOC0zLjEtMTAuOC03LjYtMTEuNmMtNC4yLTEuMS05LjksNS45LTEwLjIsMTAuNQ0KCQkJQy02Ny4yLTYxLTY2LjEtNTUuNC01OS45LTU0LjUiLz4NCgkJPHBhdGggaWQ9IkZpbGwtNSIgY2xhc3M9InN0MSIgZD0iTS05NS4zLTM4LjZjOC41LTEuNyw3LjEtMTEuNiw3LjEtMTMuOWMtMC4zLTMuNC00LjItOS4zLTkuOS04LjhjLTYuOCwwLjYtNy42LDEwLjItNy42LDEwLjINCgkJCUMtMTA2LjktNDYuNi0xMDMuOC0zNi45LTk1LjMtMzguNiIvPg0KCQk8cGF0aCBpZD0iRmlsbC03IiBjbGFzcz0ic3QxIiBkPSJNLTM1LjItNDYuM2MwLTIuNS0yLTkuNi05LjMtOS42Yy03LjQsMC04LjUsNi44LTguNSwxMS42YzAsNC41LDAuMywxMSw5LjYsMTAuOA0KCQkJQy0zNC40LTMzLjgtMzUuMi00NC0zNS4yLTQ2LjMiLz4NCgkJPHBhdGggaWQ9IkZpbGwtOSIgY2xhc3M9InN0MSIgZD0iTS04Ni41LTIxLjRjLTAuMywwLjYtMC44LDIuNS0wLjMsNGMwLjgsMy40LDQsMy43LDQsMy43aDQuMnYtMTAuOGgtNC44DQoJCQlDLTg1LjEtMjMuNi04Ni4yLTIxLjktODYuNS0yMS40Ii8+DQoJCTxwYXRoIGlkPSJGaWxsLTExIiBjbGFzcz0ic3QxIiBkPSJNLTUzLjEtOS41aC0xMi43Yy00LjgtMS4xLTUuMS00LjgtNS4xLTQuOHYtMTMuOWg1LjF2MTIuNWMwLjMsMS40LDIsMS43LDIsMS43aDUuNHYtMTMuOWg1LjQNCgkJCVYtOS41eiBNLTczLjItOS4ySC04NGMtNC44LTAuOC02LjgtNC4yLTYuOC00LjhjLTAuMy0wLjYtMS43LTMuMS0wLjgtNy42YzItNi41LDcuOS03LjEsNy45LTcuMWg1Ljd2LTcuMWg0LjgNCgkJCUMtNzMuMi0zNS44LTczLjItOS4yLTczLjItOS4yeiBNLTQ0LjYtMjUuM2MwLDAtOS42LTcuNC0xNS4zLTE1LjNjLTcuNi0xMS42LTE4LjQtNy4xLTIxLjgtMS4xYy0zLjQsNS45LTkuMSw5LjktOS45LDEwLjgNCgkJCWMtMC44LDAuOC0xMS42LDYuOC05LjEsMTcuM0MtOTguMS0zLjItODkuOS0zLjUtODkuOS0zLjVzNi4yLDAuNiwxMy4zLTEuMWM3LjEtMS43LDEzLjMsMC4zLDEzLjMsMC4zUy00Ni42LDEuMy00Mi05LjcNCgkJCUMtMzcuNS0xOS43LTQ0LjYtMjUuMy00NC42LTI1LjNMLTQ0LjYtMjUuM3oiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==">
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-5-8">
|
||||
<h4 id="baidu_status">国内网站<br><span class="red">无法访问✘</span></h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-1-6">
|
||||
<div class="block pure-g" >
|
||||
<div class="pure-u-3-8">
|
||||
<div class="img-con">
|
||||
<img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0i5Zu+5bGCXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTAwIDEwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6I0ZCQjE0MDt9DQoJLnN0MXtmaWxsOiNGRkZGRkY7fQ0KPC9zdHlsZT4NCjxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjUwIiBjeT0iNTAiIHI9IjUwIi8+DQo8cGF0aCBjbGFzcz0ic3QxIiBkPSJNODYuOCw0Ny42QzgzLjYsMzMsNzQuOCwyMi41LDY2LjUsMjNoLTAuM2MtMy4zLDAtNi41LDEuMi04LjksMy4zYy0xLjgsMi00LjQsMy4yLTcuMSwzLjINCgljLTIuNiwwLTUuMS0xLjEtNi45LTNjLTIuNS0yLjMtNS44LTMuNS05LjEtMy41aC0wLjRjLTguMi0wLjUtMTcuMSwxMC0yMC4zLDI0LjZjLTMuNSwxNS41LDAuOCwyOS44LDkuNSwzMS45DQoJYzYuMywxLjYsMTMuMy0zLjksMTcuOS0xM2gxOC43YzQuNyw5LjEsMTEuNiwxNC42LDE3LjksMTNDODYsNzcuNCw5MC4yLDYzLjEsODYuOCw0Ny42TDg2LjgsNDcuNnogTTQyLjksNDguNUgzNnY3LjJoLTUuNnYtNy4yDQoJaC02Ljl2LTUuOGg2Ljl2LTcuMkgzNnY3LjJoNi45TDQyLjksNDguNXogTTYyLjcsNDkuMmMtMiwwLjEtMy43LTEuNC0zLjgtMy40Yy0wLjEtMiwxLjQtMy43LDMuNC0zLjhjMi0wLjEsMy43LDEuNCwzLjgsMy40DQoJYzAsMC4xLDAsMC4xLDAsMC4yQzY2LjIsNDcuNSw2NC43LDQ5LjEsNjIuNyw0OS4yQzYyLjcsNDkuMiw2Mi43LDQ5LjIsNjIuNyw0OS4yeiBNNzMuNyw0OS4yYy0yLDAuMS0zLjctMS40LTMuOC0zLjQNCgljLTAuMS0yLDEuNC0zLjcsMy40LTMuOGMyLTAuMSwzLjcsMS40LDMuOCwzLjRjMCwwLjEsMCwwLjEsMCwwLjJjMC4xLDEuOS0xLjQsMy41LTMuMywzLjZINzMuN3oiLz4NCjwvc3ZnPg0K">
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-5-8">
|
||||
<h4 id="game_status">游戏模式<br><span class="red">未运行✘</span></h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-1-6">
|
||||
<div class="block pure-g" >
|
||||
<div class="pure-u-3-8">
|
||||
<div class="img-con">
|
||||
<img src="https://i.imgur.com/bYz9YoR.png" >
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-5-8">
|
||||
<h4 id="SOCKS5_status">𝙎𝙊𝘾𝙆𝙎⑤<br><span class="red">未运行✘</span></h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-1-6">
|
||||
<div class="block pure-g" >
|
||||
<div class="pure-u-3-8">
|
||||
<div class="img-con">
|
||||
<img src="https://i.imgur.com/3hkGjsK.png" >
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-1-6">
|
||||
<div class="block pure-g">
|
||||
<div class="pure-u-3-5">
|
||||
|
||||
<h4 id="baidu_status">国内网站<br><span class="red">无法访问✘</span></h4>
|
||||
</div>
|
||||
<div class="pure-u-2-5">
|
||||
<div class="img-con">
|
||||
<img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0i5Zu+5bGCXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTAwIDEwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzMzODhGRjt9DQoJLnN0MXtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNGRkZGRkY7fQ0KPC9zdHlsZT4NCjxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjUwIiBjeT0iNTAiIHI9IjUwIi8+DQo8ZyBpZD0i5pCc57SiX+eGiuaOjF82Nmljb24iPg0KCTxnIGlkPSJsb2dvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjEuMjEyMTIxLCA5MC45MDkwOTEpIj4NCgkJPHBhdGggaWQ9IkZpbGwtMSIgY2xhc3M9InN0MSIgZD0iTS03OS43LTU1LjRjNC41LDAsOC41LTUuNCw4LjUtMTEuOWMwLTYuNS0zLjctMTEuOS04LjUtMTEuOWMtNC41LDAtOC41LDUuNC04LjUsMTEuOQ0KCQkJQy04Ny45LTYwLjctODQuMi01NS40LTc5LjctNTUuNCIvPg0KCQk8cGF0aCBpZD0iRmlsbC0zIiBjbGFzcz0ic3QxIiBkPSJNLTU5LjktNTQuNWM2LjIsMC44LDEwLjItNS43LDExLTEwLjhjMC44LTQuOC0zLjEtMTAuOC03LjYtMTEuNmMtNC4yLTEuMS05LjksNS45LTEwLjIsMTAuNQ0KCQkJQy02Ny4yLTYxLTY2LjEtNTUuNC01OS45LTU0LjUiLz4NCgkJPHBhdGggaWQ9IkZpbGwtNSIgY2xhc3M9InN0MSIgZD0iTS05NS4zLTM4LjZjOC41LTEuNyw3LjEtMTEuNiw3LjEtMTMuOWMtMC4zLTMuNC00LjItOS4zLTkuOS04LjhjLTYuOCwwLjYtNy42LDEwLjItNy42LDEwLjINCgkJCUMtMTA2LjktNDYuNi0xMDMuOC0zNi45LTk1LjMtMzguNiIvPg0KCQk8cGF0aCBpZD0iRmlsbC03IiBjbGFzcz0ic3QxIiBkPSJNLTM1LjItNDYuM2MwLTIuNS0yLTkuNi05LjMtOS42Yy03LjQsMC04LjUsNi44LTguNSwxMS42YzAsNC41LDAuMywxMSw5LjYsMTAuOA0KCQkJQy0zNC40LTMzLjgtMzUuMi00NC0zNS4yLTQ2LjMiLz4NCgkJPHBhdGggaWQ9IkZpbGwtOSIgY2xhc3M9InN0MSIgZD0iTS04Ni41LTIxLjRjLTAuMywwLjYtMC44LDIuNS0wLjMsNGMwLjgsMy40LDQsMy43LDQsMy43aDQuMnYtMTAuOGgtNC44DQoJCQlDLTg1LjEtMjMuNi04Ni4yLTIxLjktODYuNS0yMS40Ii8+DQoJCTxwYXRoIGlkPSJGaWxsLTExIiBjbGFzcz0ic3QxIiBkPSJNLTUzLjEtOS41aC0xMi43Yy00LjgtMS4xLTUuMS00LjgtNS4xLTQuOHYtMTMuOWg1LjF2MTIuNWMwLjMsMS40LDIsMS43LDIsMS43aDUuNHYtMTMuOWg1LjQNCgkJCVYtOS41eiBNLTczLjItOS4ySC04NGMtNC44LTAuOC02LjgtNC4yLTYuOC00LjhjLTAuMy0wLjYtMS43LTMuMS0wLjgtNy42YzItNi41LDcuOS03LjEsNy45LTcuMWg1Ljd2LTcuMWg0LjgNCgkJCUMtNzMuMi0zNS44LTczLjItOS4yLTczLjItOS4yeiBNLTQ0LjYtMjUuM2MwLDAtOS42LTcuNC0xNS4zLTE1LjNjLTcuNi0xMS42LTE4LjQtNy4xLTIxLjgtMS4xYy0zLjQsNS45LTkuMSw5LjktOS45LDEwLjgNCgkJCWMtMC44LDAuOC0xMS42LDYuOC05LjEsMTcuM0MtOTguMS0zLjItODkuOS0zLjUtODkuOS0zLjVzNi4yLDAuNiwxMy4zLTEuMWM3LjEtMS43LDEzLjMsMC4zLDEzLjMsMC4zUy00Ni42LDEuMy00Mi05LjcNCgkJCUMtMzcuNS0xOS43LTQ0LjYtMjUuMy00NC42LTI1LjNMLTQ0LjYtMjUuM3oiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-1-6">
|
||||
<div class="block pure-g">
|
||||
<div class="pure-u-3-5">
|
||||
<h4 id="google_status">国外网站<br><span class="red">无法访问✘</span></h4>
|
||||
</div>
|
||||
<div class="pure-u-2-5">
|
||||
<div class="img-con">
|
||||
<img src="https://i.imgur.com/3mE04AZ.png">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-6">
|
||||
<div class="block pure-g">
|
||||
<div class="pure-u-3-5">
|
||||
<h4 id="game_status"><%:Game Mode%><br /><span class="red"><%:Not Running%></span></h4>
|
||||
</div>
|
||||
<div class="pure-u-2-5">
|
||||
<div class="img-con">
|
||||
<img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0i5Zu+5bGCXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTAwIDEwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6I0ZCQjE0MDt9DQoJLnN0MXtmaWxsOiNGRkZGRkY7fQ0KPC9zdHlsZT4NCjxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjUwIiBjeT0iNTAiIHI9IjUwIi8+DQo8cGF0aCBjbGFzcz0ic3QxIiBkPSJNODYuOCw0Ny42QzgzLjYsMzMsNzQuOCwyMi41LDY2LjUsMjNoLTAuM2MtMy4zLDAtNi41LDEuMi04LjksMy4zYy0xLjgsMi00LjQsMy4yLTcuMSwzLjINCgljLTIuNiwwLTUuMS0xLjEtNi45LTNjLTIuNS0yLjMtNS44LTMuNS05LjEtMy41aC0wLjRjLTguMi0wLjUtMTcuMSwxMC0yMC4zLDI0LjZjLTMuNSwxNS41LDAuOCwyOS44LDkuNSwzMS45DQoJYzYuMywxLjYsMTMuMy0zLjksMTcuOS0xM2gxOC43YzQuNyw5LjEsMTEuNiwxNC42LDE3LjksMTNDODYsNzcuNCw5MC4yLDYzLjEsODYuOCw0Ny42TDg2LjgsNDcuNnogTTQyLjksNDguNUgzNnY3LjJoLTUuNnYtNy4yDQoJaC02Ljl2LTUuOGg2Ljl2LTcuMkgzNnY3LjJoNi45TDQyLjksNDguNXogTTYyLjcsNDkuMmMtMiwwLjEtMy43LTEuNC0zLjgtMy40Yy0wLjEtMiwxLjQtMy43LDMuNC0zLjhjMi0wLjEsMy43LDEuNCwzLjgsMy40DQoJYzAsMC4xLDAsMC4xLDAsMC4yQzY2LjIsNDcuNSw2NC43LDQ5LjEsNjIuNyw0OS4yQzYyLjcsNDkuMiw2Mi43LDQ5LjIsNjIuNyw0OS4yeiBNNzMuNyw0OS4yYy0yLDAuMS0zLjctMS40LTMuOC0zLjQNCgljLTAuMS0yLDEuNC0zLjcsMy40LTMuOGMyLTAuMSwzLjcsMS40LDMuOCwzLjRjMCwwLjEsMCwwLjEsMCwwLjJjMC4xLDEuOS0xLjQsMy41LTMuMywzLjZINzMuN3oiLz4NCjwvc3ZnPg0K" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-1-6">
|
||||
<div class="block pure-g">
|
||||
<div class="pure-u-3-5">
|
||||
<h4 id="chinadns_status">𝐂𝐡𝐢𝐧𝐚𝐃𝐍𝐒<br /><span class="red"><%:Not Running%></span></h4>
|
||||
</div>
|
||||
<div class="pure-u-2-5">
|
||||
<div class="img-con">
|
||||
<img src="https://i.imgur.com/3hkGjsK.png" >
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-5-8">
|
||||
<h4 id="chinadns_status">𝐂𝐡𝐢𝐧𝐚𝐃𝐍𝐒<br><span class="red">未运行✘</span></h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-6">
|
||||
<div class="block pure-g">
|
||||
<div class="pure-u-3-5">
|
||||
<h4 id="SOCKS5_status">𝙎𝙊𝘾𝙆𝙎5<br /><span class="red"><%:Not Running%></span></h4>
|
||||
</div>
|
||||
<div class="pure-u-2-5">
|
||||
<div class="img-con">
|
||||
<img src="https://i.imgur.com/bYz9YoR.png" >
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
|
||||
</style>
|
||||
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
//<![CDATA[
|
||||
XHR.poll(5, '<%=url([[admin]], [[vpn]], [[shadowsocksr]], [[run]])%>', null,
|
||||
function (x, data) {
|
||||
var tb = document.getElementById('shadowsocksr_status');
|
||||
var tb1 = document.getElementById('google_status');
|
||||
var tb2 = document.getElementById('baidu_status');
|
||||
var tb3 = document.getElementById('game_status');
|
||||
var tb4 = document.getElementById('SOCKS5_status');
|
||||
var tb5 = document.getElementById('chinadns_status');
|
||||
|
||||
if (data && tb) {
|
||||
if (data.global) {
|
||||
tb.innerHTML = '科学上网<br><span class="green">运行正常✔</span>';
|
||||
} else {
|
||||
tb.innerHTML = '科学上网<br><span class="red">未运行✘</span>';
|
||||
}
|
||||
if (data.google) {
|
||||
tb1.innerHTML = '国外网站<br><span class="green">访问正常✔</span>';
|
||||
} else {
|
||||
tb1.innerHTML = '国外网站<br><span class="red">无法访问✘</span>';
|
||||
}
|
||||
if (data.baidu) {
|
||||
tb2.innerHTML = '国内网站<br><span class="green">访问正常✔</span>';
|
||||
} else {
|
||||
tb2.innerHTML = '国内网站<br><span class="red">无法访问✘</span>';
|
||||
}
|
||||
|
||||
|
||||
if (data.game) {
|
||||
tb3.innerHTML = '游戏模式<br><span class="green">运行正常✔</span>';
|
||||
} else {
|
||||
tb3.innerHTML = '游戏模式<br><span class="red">未运行✘</span>';
|
||||
|
||||
}
|
||||
if (data.SOCKS5 ) {
|
||||
tb4.innerHTML = '𝙎𝙊𝘾𝙆𝙎⑤<br><span class="green">运行正常✔</span>';
|
||||
} else {
|
||||
tb4.innerHTML = '𝙎𝙊𝘾𝙆𝙎⑤<br><span class="red">未运行✘</span>';
|
||||
}
|
||||
if (data.chinadns) {
|
||||
tb5.innerHTML = '𝐂𝐡𝐢𝐧𝐚𝐃𝐍𝐒<br><span class="green">运行正常✔</span>';
|
||||
} else {
|
||||
tb5.innerHTML = '𝐂𝐡𝐢𝐧𝐚𝐃𝐍𝐒<br><span class="red">未运行✘</span>';
|
||||
|
||||
}
|
||||
if (data) {
|
||||
document.getElementById('shadowsocksr_status').innerHTML = data.global?'<%:Client%><br><span class="green">运行正常✔</span>':'<%:Client%><br><span class="red">未运行✘</span>';
|
||||
document.getElementById('baidu_status').innerHTML = data.baidu?'国内网站<br><span class="green">访问正常✔</span>':'国内网站<br><span class="red">无法访问✘</span>';
|
||||
document.getElementById('google_status').innerHTML = data.google?'国外网站<br><span class="green">访问正常✔</span>':'国外网站<br><span class="red">无法访问✘</span>';
|
||||
document.getElementById('game_status').innerHTML = data.game?'游戏模式<br><span class="green">运行正常✔</span>':'游戏模式<br><span class="red">未运行✘</span>';
|
||||
document.getElementById('chinadns_status').innerHTML = data.chinadns?'ChinaDNS<br><span class="green">运行正常✔</span>':'ChinaDNS<br><span class="red">未运行✘</span>';
|
||||
document.getElementById('SOCKS5_status').innerHTML = data.SOCKS5?'𝙎𝙊𝘾𝙆𝙎5<br><span class="green">运行正常✔</span>':'𝙎𝙊𝘾𝙆𝙎5<br><span class="red">未运行✘</span>';
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
//]]>
|
||||
</script></fieldset>
|
||||
</script>
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,123 @@
|
||||
<%+cbi/valueheader%>
|
||||
<link rel="stylesheet" href="/luci-static/shadowsocksr/css/shadowsocksr.css?v=72883">
|
||||
<label class="cbi-value-title"><%= translate("Update") %></label>
|
||||
<div class="cbi-value-field">
|
||||
<input class="cbi-button cbi-button-reload" id="update_subscribe" type="button"
|
||||
size="0" value="<%= translate("Save And Start Subscribe") %>">
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var _responseLen;
|
||||
var noChange = 0;
|
||||
var x = 5;
|
||||
|
||||
var modal = '<div class="modals-bg">' +
|
||||
'<div class="modals">' +
|
||||
'<h2><%:Subscription%></h2>'+
|
||||
'<h3 style="margin-left:0;"><%:Subscribing,Please do not refresh!%></h3>'+
|
||||
'<textarea cols="63" rows="28" wrap="on" readonly="readonly" id="log_content3" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>'+
|
||||
'</div>'+
|
||||
'</div>';
|
||||
|
||||
|
||||
function update_subscribe() {
|
||||
$("body").append(modal);
|
||||
$(".modals-bg").show();
|
||||
|
||||
setTimeout("get_realtime_log();", 500);
|
||||
}
|
||||
|
||||
function submit_url(){
|
||||
prefix_array = $("#cbi-shadowsocksr-server_subscribe .cbi-section-node").attr("id").split("-");
|
||||
prefix_array[0] = "cbid";
|
||||
prefix = prefix_array.join(".");
|
||||
if($("[name='"+prefix+".auto_update']").is(":checked")){
|
||||
var auto_update = "1";
|
||||
}else{
|
||||
var auto_update = "0";
|
||||
}
|
||||
var auto_update_time = $("[name='"+prefix+".auto_update_time']").val();
|
||||
var subscribe_url = [];
|
||||
$("[name='"+prefix+".subscribe_url']").each(function(){
|
||||
if($(this).val() != ""){
|
||||
subscribe_url.push($(this).val());
|
||||
}
|
||||
});
|
||||
if($("[name='"+prefix+".proxy']").is(":checked")){
|
||||
var proxy = "1";
|
||||
}else{
|
||||
var proxy = "0";
|
||||
}
|
||||
|
||||
var data = {
|
||||
auto_update:auto_update,
|
||||
auto_update_time : auto_update_time,
|
||||
subscribe_url: JSON.stringify(subscribe_url),
|
||||
proxy: proxy
|
||||
}
|
||||
//console.log(data);
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "<%=luci.dispatcher.build_url('admin', 'vpn', 'shadowsocksr','subscribe')%>",
|
||||
dataType : "json",
|
||||
data: data,
|
||||
success: function (d) {
|
||||
if(d.error == 0){
|
||||
//console.log("开始订阅");
|
||||
update_subscribe();
|
||||
}else{
|
||||
alert("请至少填写一个订阅链接");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
$("#update_subscribe").click(function(){
|
||||
//console.log("提交数据");
|
||||
submit_url();
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
function refresh_page(){
|
||||
location.reload();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
function get_realtime_log() {
|
||||
$.ajax({
|
||||
url: '/check_update.htm?v='+parseInt(Math.random() * 100000000),
|
||||
dataType: 'html',
|
||||
error: function (xhr) {
|
||||
setTimeout("get_realtime_log();", 1000);
|
||||
},
|
||||
success: function (response) {
|
||||
var retArea = document.getElementById("log_content3");
|
||||
if (response.search("END SUBSCRIBE") != -1) {
|
||||
noChange++;
|
||||
}
|
||||
console.log(noChange);
|
||||
if (noChange > 10) {
|
||||
window.location.href="<%=luci.dispatcher.build_url('admin', 'vpn', 'shadowsocksr','servers')%>"
|
||||
return false;
|
||||
} else {
|
||||
setTimeout("get_realtime_log();", 250);
|
||||
}
|
||||
retArea.value = response;
|
||||
retArea.scrollTop = retArea.scrollHeight;
|
||||
_responseLen = response.length;
|
||||
},
|
||||
error: function () {
|
||||
setTimeout("get_realtime_log();", 500);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
<%+cbi/valuefooter%>
|
||||
Binary file not shown.
@ -119,6 +119,7 @@
|
||||
27.116.44.0/22
|
||||
27.121.72.0/21
|
||||
27.121.120.0/21
|
||||
27.123.232.0/22
|
||||
27.128.0.0/15
|
||||
27.131.220.0/22
|
||||
27.144.0.0/16
|
||||
@ -424,6 +425,7 @@
|
||||
43.228.148.0/22
|
||||
43.228.152.0/22
|
||||
43.228.188.0/22
|
||||
43.229.16.0/22
|
||||
43.229.40.0/22
|
||||
43.229.48.0/22
|
||||
43.229.56.0/22
|
||||
@ -705,7 +707,6 @@
|
||||
43.240.128.0/22
|
||||
43.240.132.0/22
|
||||
43.240.136.0/22
|
||||
43.240.144.0/22
|
||||
43.240.156.0/22
|
||||
43.240.160.0/22
|
||||
43.240.164.0/22
|
||||
@ -2052,6 +2053,7 @@
|
||||
103.12.184.0/22
|
||||
103.12.232.0/22
|
||||
103.13.12.0/22
|
||||
103.13.72.0/23
|
||||
103.13.124.0/22
|
||||
103.13.144.0/22
|
||||
103.13.196.0/22
|
||||
@ -2717,6 +2719,7 @@
|
||||
103.47.136.0/22
|
||||
103.47.140.0/22
|
||||
103.47.212.0/22
|
||||
103.48.20.0/22
|
||||
103.48.52.0/22
|
||||
103.48.92.0/22
|
||||
103.48.144.0/22
|
||||
@ -3172,6 +3175,7 @@
|
||||
103.76.72.0/22
|
||||
103.76.84.0/22
|
||||
103.76.92.0/22
|
||||
103.76.104.0/22
|
||||
103.76.216.0/22
|
||||
103.76.220.0/22
|
||||
103.76.224.0/22
|
||||
@ -3824,20 +3828,6 @@
|
||||
103.124.216.0/22
|
||||
103.125.20.0/22
|
||||
103.125.44.0/22
|
||||
103.125.132.0/22
|
||||
103.125.164.0/22
|
||||
103.125.196.0/22
|
||||
103.125.236.0/22
|
||||
103.125.248.0/22
|
||||
103.126.0.0/22
|
||||
103.126.16.0/22
|
||||
103.126.44.0/22
|
||||
103.126.100.0/22
|
||||
103.126.124.0/22
|
||||
103.126.128.0/22
|
||||
103.126.132.0/22
|
||||
103.126.208.0/22
|
||||
103.126.241.0/24
|
||||
103.129.52.0/22
|
||||
103.129.148.0/22
|
||||
103.130.132.0/22
|
||||
@ -3852,67 +3842,6 @@
|
||||
103.131.224.0/22
|
||||
103.131.228.0/22
|
||||
103.131.240.0/22
|
||||
103.132.60.0/22
|
||||
103.132.64.0/22
|
||||
103.132.68.0/22
|
||||
103.132.72.0/22
|
||||
103.132.76.0/22
|
||||
103.132.80.0/22
|
||||
103.132.104.0/22
|
||||
103.132.108.0/22
|
||||
103.132.112.0/22
|
||||
103.132.116.0/22
|
||||
103.132.120.0/22
|
||||
103.132.160.0/22
|
||||
103.132.164.0/22
|
||||
103.132.188.0/22
|
||||
103.132.208.0/22
|
||||
103.132.212.0/22
|
||||
103.132.234.0/23
|
||||
103.133.12.0/22
|
||||
103.133.40.0/22
|
||||
103.133.128.0/22
|
||||
103.133.136.0/22
|
||||
103.133.176.0/22
|
||||
103.133.232.0/22
|
||||
103.134.12.0/24
|
||||
103.134.196.0/22
|
||||
103.135.80.0/22
|
||||
103.135.124.0/22
|
||||
103.135.148.0/22
|
||||
103.135.156.0/22
|
||||
103.135.160.0/22
|
||||
103.135.164.0/22
|
||||
103.135.176.0/22
|
||||
103.135.184.0/22
|
||||
103.135.192.0/22
|
||||
103.135.196.0/22
|
||||
103.135.236.0/22
|
||||
103.136.128.0/22
|
||||
103.136.232.0/22
|
||||
103.137.57.0/24
|
||||
103.137.58.0/23
|
||||
103.137.60.0/24
|
||||
103.137.76.0/22
|
||||
103.137.136.0/23
|
||||
103.137.149.0/24
|
||||
103.137.180.0/22
|
||||
103.137.236.0/22
|
||||
103.138.2.0/23
|
||||
103.138.12.0/23
|
||||
103.138.80.0/22
|
||||
103.138.134.0/23
|
||||
103.138.156.0/23
|
||||
103.138.208.0/23
|
||||
103.138.220.0/23
|
||||
103.138.246.0/23
|
||||
103.138.248.0/23
|
||||
103.139.0.0/23
|
||||
103.139.2.0/23
|
||||
103.139.22.0/23
|
||||
103.139.113.0/24
|
||||
103.139.134.0/23
|
||||
103.139.136.0/23
|
||||
103.192.0.0/22
|
||||
103.192.4.0/22
|
||||
103.192.8.0/22
|
||||
@ -5275,11 +5204,9 @@
|
||||
116.204.132.0/22
|
||||
116.204.168.0/22
|
||||
116.204.216.0/22
|
||||
116.204.232.0/22
|
||||
116.204.236.0/22
|
||||
116.204.244.0/22
|
||||
116.205.0.0/16
|
||||
116.206.92.0/22
|
||||
116.206.100.0/22
|
||||
116.206.176.0/22
|
||||
116.207.0.0/16
|
||||
116.208.0.0/14
|
||||
@ -5700,7 +5627,6 @@
|
||||
123.242.196.0/22
|
||||
123.244.0.0/14
|
||||
123.249.0.0/16
|
||||
123.253.108.0/22
|
||||
123.254.96.0/22
|
||||
123.254.100.0/22
|
||||
124.6.64.0/18
|
||||
@ -6197,7 +6123,6 @@
|
||||
183.184.0.0/13
|
||||
183.192.0.0/10
|
||||
188.131.128.0/17
|
||||
192.51.188.0/24
|
||||
192.55.46.0/24
|
||||
192.55.68.0/22
|
||||
192.102.204.0/23
|
||||
@ -6221,15 +6146,12 @@
|
||||
192.140.208.0/22
|
||||
192.140.212.0/22
|
||||
192.144.128.0/17
|
||||
192.197.113.0/24
|
||||
193.112.0.0/16
|
||||
198.175.100.0/22
|
||||
199.212.57.0/24
|
||||
202.0.100.0/23
|
||||
202.0.122.0/23
|
||||
202.0.176.0/22
|
||||
202.3.128.0/23
|
||||
202.3.134.0/24
|
||||
202.4.128.0/19
|
||||
202.4.252.0/22
|
||||
202.5.208.0/22
|
||||
@ -6252,7 +6174,6 @@
|
||||
202.8.12.0/24
|
||||
202.8.24.0/24
|
||||
202.8.77.0/24
|
||||
202.8.120.0/22
|
||||
202.8.128.0/19
|
||||
202.8.192.0/20
|
||||
202.9.32.0/24
|
||||
@ -6438,7 +6359,6 @@
|
||||
202.52.34.0/24
|
||||
202.52.47.0/24
|
||||
202.52.143.0/24
|
||||
202.52.144.0/24
|
||||
202.53.140.0/24
|
||||
202.53.143.0/24
|
||||
202.57.192.0/22
|
||||
@ -6449,7 +6369,6 @@
|
||||
202.57.216.0/22
|
||||
202.57.240.0/20
|
||||
202.58.0.0/24
|
||||
202.58.101.0/24
|
||||
202.58.104.0/22
|
||||
202.58.112.0/22
|
||||
202.59.0.0/24
|
||||
@ -6574,7 +6493,6 @@
|
||||
202.92.252.0/22
|
||||
202.93.0.0/22
|
||||
202.93.252.0/22
|
||||
202.94.68.0/24
|
||||
202.94.74.0/24
|
||||
202.94.81.0/24
|
||||
202.94.92.0/22
|
||||
@ -7036,6 +6954,7 @@
|
||||
203.8.0.0/24
|
||||
203.8.8.0/24
|
||||
203.8.23.0/24
|
||||
203.8.24.0/21
|
||||
203.8.70.0/24
|
||||
203.8.82.0/24
|
||||
203.8.86.0/23
|
||||
@ -7099,6 +7018,7 @@
|
||||
203.12.66.0/24
|
||||
203.12.70.0/23
|
||||
203.12.87.0/24
|
||||
203.12.88.0/21
|
||||
203.12.100.0/23
|
||||
203.12.103.0/24
|
||||
203.12.114.0/24
|
||||
@ -7106,6 +7026,7 @@
|
||||
203.12.130.0/24
|
||||
203.12.137.0/24
|
||||
203.12.196.0/22
|
||||
203.12.200.0/21
|
||||
203.12.211.0/24
|
||||
203.12.219.0/24
|
||||
203.12.226.0/24
|
||||
@ -7113,6 +7034,7 @@
|
||||
203.13.18.0/24
|
||||
203.13.24.0/24
|
||||
203.13.44.0/23
|
||||
203.13.80.0/21
|
||||
203.13.88.0/23
|
||||
203.13.92.0/22
|
||||
203.13.173.0/24
|
||||
@ -7128,6 +7050,7 @@
|
||||
203.14.114.0/23
|
||||
203.14.118.0/24
|
||||
203.14.162.0/24
|
||||
203.14.184.0/21
|
||||
203.14.192.0/24
|
||||
203.14.194.0/23
|
||||
203.14.214.0/24
|
||||
@ -7753,7 +7676,6 @@
|
||||
203.86.250.0/24
|
||||
203.86.254.0/23
|
||||
203.88.32.0/19
|
||||
203.88.100.0/22
|
||||
203.88.192.0/19
|
||||
203.89.0.0/22
|
||||
203.89.8.0/21
|
||||
@ -7943,7 +7865,6 @@
|
||||
203.222.192.0/20
|
||||
203.223.0.0/20
|
||||
203.223.16.0/21
|
||||
204.52.191.0/24
|
||||
210.2.0.0/20
|
||||
210.2.16.0/20
|
||||
210.5.0.0/19
|
||||
@ -8071,6 +7992,7 @@
|
||||
211.164.0.0/14
|
||||
212.64.0.0/17
|
||||
212.129.128.0/17
|
||||
216.250.108.0/22
|
||||
218.0.0.0/16
|
||||
218.1.0.0/16
|
||||
218.2.0.0/15
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
address=/qgjapp.com/127.0.0.1
|
||||
address=/wxs666.cn/127.0.0.1
|
||||
address=/pufenchuanmu.com/127.0.0.1
|
||||
address=/0024aaaa.com/127.0.0.1
|
||||
address=/00880808.com/127.0.0.1
|
||||
address=/008844.cc/127.0.0.1
|
||||
address=/0133hao.net/127.0.0.1
|
||||
address=/01fen.com/127.0.0.1
|
||||
address=/02123s.com/127.0.0.1
|
||||
address=/022aifang.com/127.0.0.1
|
||||
address=/023hysj.com/127.0.0.1
|
||||
@ -277,6 +277,8 @@ address=/9dtiny.cn/127.0.0.1
|
||||
address=/9h6qq.cn/127.0.0.1
|
||||
address=/9kff.com/127.0.0.1
|
||||
address=/9nwg9sib9e.com/127.0.0.1
|
||||
address=/9uys.co/127.0.0.1
|
||||
address=/9wlm.com/127.0.0.1
|
||||
address=/9wotuan.com/127.0.0.1
|
||||
address=/9xiazaiqi.com/127.0.0.1
|
||||
address=/a.youdao.com/127.0.0.1
|
||||
@ -443,6 +445,7 @@ address=/caliyuna.cn/127.0.0.1
|
||||
address=/cangnews.com/127.0.0.1
|
||||
address=/caob5.info/127.0.0.1
|
||||
address=/caolvch.com/127.0.0.1
|
||||
address=/caredaily.me/127.0.0.1
|
||||
address=/carpenterrprp.com/127.0.0.1
|
||||
address=/cayanfang.com/127.0.0.1
|
||||
address=/cb.baidu.com/127.0.0.1
|
||||
@ -881,6 +884,7 @@ address=/hzxma.com/127.0.0.1
|
||||
address=/i.zhuoyaju.com/127.0.0.1
|
||||
address=/i3818.com/127.0.0.1
|
||||
address=/i92xue.com/127.0.0.1
|
||||
address=/icemf.com/127.0.0.1
|
||||
address=/id528.com/127.0.0.1
|
||||
address=/idasai.com/127.0.0.1
|
||||
address=/idasui.cn/127.0.0.1
|
||||
@ -961,6 +965,7 @@ address=/jktopia.com/127.0.0.1
|
||||
address=/jl027.com/127.0.0.1
|
||||
address=/jlssbz.com/127.0.0.1
|
||||
address=/jlwljym.com/127.0.0.1
|
||||
address=/jnxz88.cn/127.0.0.1
|
||||
address=/jnyngg.cn/127.0.0.1
|
||||
address=/johtzj.com/127.0.0.1
|
||||
address=/josipr.com/127.0.0.1
|
||||
@ -998,6 +1003,7 @@ address=/jxxiangchu.com/127.0.0.1
|
||||
address=/jystea.com/127.0.0.1
|
||||
address=/k12shequ.com/127.0.0.1
|
||||
address=/k1815.com/127.0.0.1
|
||||
address=/k8yy.tv/127.0.0.1
|
||||
address=/ka12138.top/127.0.0.1
|
||||
address=/kan8.xyz/127.0.0.1
|
||||
address=/kawa11.space/127.0.0.1
|
||||
@ -1060,6 +1066,7 @@ address=/laobei.top/127.0.0.1
|
||||
address=/laolinow.com/127.0.0.1
|
||||
address=/lashou1000.com/127.0.0.1
|
||||
address=/lc1b2.cn/127.0.0.1
|
||||
address=/lc442.com/127.0.0.1
|
||||
address=/ldgjhd.net/127.0.0.1
|
||||
address=/le4le.com/127.0.0.1
|
||||
address=/leamain.net/127.0.0.1
|
||||
@ -1075,7 +1082,9 @@ address=/lhafy.com/127.0.0.1
|
||||
address=/lhengilin.com/127.0.0.1
|
||||
address=/lhusy.com/127.0.0.1
|
||||
address=/liangziweixg.com/127.0.0.1
|
||||
address=/liaoren85.com/127.0.0.1
|
||||
address=/librarymanagement.cn/127.0.0.1
|
||||
address=/lievr.cc/127.0.0.1
|
||||
address=/lifu11.com/127.0.0.1
|
||||
address=/liliwoin.top/127.0.0.1
|
||||
address=/linjiajia.cn/127.0.0.1
|
||||
@ -1095,6 +1104,7 @@ address=/lnctc.net/127.0.0.1
|
||||
address=/lnfund.org.cn/127.0.0.1
|
||||
address=/loandatec.com/127.0.0.1
|
||||
address=/log.interest.mix.sina.com.cn/127.0.0.1
|
||||
address=/lolmp4.com/127.0.0.1
|
||||
address=/long88.app/127.0.0.1
|
||||
address=/loveconer.com/127.0.0.1
|
||||
address=/lovestyl.com/127.0.0.1
|
||||
@ -1141,6 +1151,7 @@ address=/meilides.com/127.0.0.1
|
||||
address=/meimeidaren.com/127.0.0.1
|
||||
address=/meimeiha.com/127.0.0.1
|
||||
address=/meiti1.net/127.0.0.1
|
||||
address=/mengbingyuan.com/127.0.0.1
|
||||
address=/mengheyu.com/127.0.0.1
|
||||
address=/menghuanzs.com/127.0.0.1
|
||||
address=/mengmengdas.com/127.0.0.1
|
||||
@ -1171,12 +1182,14 @@ address=/mr087.cn/127.0.0.1
|
||||
address=/mrksys.com/127.0.0.1
|
||||
address=/ms758.com/127.0.0.1
|
||||
address=/mscimg.com/127.0.0.1
|
||||
address=/mskjf.com/127.0.0.1
|
||||
address=/msltzer.cn/127.0.0.1
|
||||
address=/mstzym.com/127.0.0.1
|
||||
address=/msujd.cn/127.0.0.1
|
||||
address=/mtqys.com/127.0.0.1
|
||||
address=/mu722.com/127.0.0.1
|
||||
address=/mushan.xin/127.0.0.1
|
||||
address=/mxdregs.com/127.0.0.1
|
||||
address=/mxmrt.com/127.0.0.1
|
||||
address=/mygeneclub.com/127.0.0.1
|
||||
address=/mytzdhz.cn/127.0.0.1
|
||||
@ -1295,7 +1308,9 @@ address=/qclcdn.cn/127.0.0.1
|
||||
address=/qcupup.com/127.0.0.1
|
||||
address=/qdchunyu.com/127.0.0.1
|
||||
address=/qdsfzz.cn/127.0.0.1
|
||||
address=/qevcxo.cn/127.0.0.1
|
||||
address=/qfs365.com/127.0.0.1
|
||||
address=/qgjapp.com/127.0.0.1
|
||||
address=/qgss8.com/127.0.0.1
|
||||
address=/qhaif.com/127.0.0.1
|
||||
address=/qi-duo.com/127.0.0.1
|
||||
@ -1316,6 +1331,7 @@ address=/qmname.com/127.0.0.1
|
||||
address=/qnvih8.cn/127.0.0.1
|
||||
address=/qo26.com/127.0.0.1
|
||||
address=/qoiusky.com/127.0.0.1
|
||||
address=/qpokok.com/127.0.0.1
|
||||
address=/qqm98.com/127.0.0.1
|
||||
address=/qqtx.me/127.0.0.1
|
||||
address=/qs01.cn/127.0.0.1
|
||||
@ -1378,6 +1394,7 @@ address=/sadobo.com/127.0.0.1
|
||||
address=/saf588.com/127.0.0.1
|
||||
address=/safe524.xyz/127.0.0.1
|
||||
address=/saferwet.com/127.0.0.1
|
||||
address=/saitef.cn/127.0.0.1
|
||||
address=/sangxi.top/127.0.0.1
|
||||
address=/sanjinma.com/127.0.0.1
|
||||
address=/sboite.cn/127.0.0.1
|
||||
@ -1401,7 +1418,6 @@ address=/sfloushi.com/127.0.0.1
|
||||
address=/sfxl.com.cn/127.0.0.1
|
||||
address=/sfz023.com/127.0.0.1
|
||||
address=/sgbfjs.info/127.0.0.1
|
||||
address=/sgftrrs.com/127.0.0.1
|
||||
address=/shama5.com/127.0.0.1
|
||||
address=/shandongkuntuo.com/127.0.0.1
|
||||
address=/shanglinli.com/127.0.0.1
|
||||
@ -1413,7 +1429,6 @@ address=/shenglonghg.net/127.0.0.1
|
||||
address=/shentupk85.com/127.0.0.1
|
||||
address=/shenyian.net/127.0.0.1
|
||||
address=/shiftrro.com/127.0.0.1
|
||||
address=/shillivee.pro/127.0.0.1
|
||||
address=/shkywh.com/127.0.0.1
|
||||
address=/shouwangba.cn/127.0.0.1
|
||||
address=/shouyouyou.com/127.0.0.1
|
||||
@ -1425,7 +1440,6 @@ address=/shxinjie.cn/127.0.0.1
|
||||
address=/shypqc.com/127.0.0.1
|
||||
address=/si9377.com/127.0.0.1
|
||||
address=/sicentlife.com/127.0.0.1
|
||||
address=/sifakaoshi360.com/127.0.0.1
|
||||
address=/sigbusa.com/127.0.0.1
|
||||
address=/sigo99.com/127.0.0.1
|
||||
address=/sina-img.club/127.0.0.1
|
||||
@ -1494,6 +1508,7 @@ address=/szrk3.com/127.0.0.1
|
||||
address=/sztbjs.com/127.0.0.1
|
||||
address=/szxiuchang.com/127.0.0.1
|
||||
address=/szxpsg.com/127.0.0.1
|
||||
address=/szxzytech.com/127.0.0.1
|
||||
address=/t415n.cn/127.0.0.1
|
||||
address=/t58b.com/127.0.0.1
|
||||
address=/t70123.com/127.0.0.1
|
||||
@ -1504,6 +1519,7 @@ address=/taobaly.cn/127.0.0.1
|
||||
address=/taobaoaliyun.cn/127.0.0.1
|
||||
address=/taobaojx.com/127.0.0.1
|
||||
address=/taobayun.cn/127.0.0.1
|
||||
address=/taoguanda.com/127.0.0.1
|
||||
address=/taohanpai.com/127.0.0.1
|
||||
address=/taoyuay.top/127.0.0.1
|
||||
address=/tbaocdn.com/127.0.0.1
|
||||
@ -1670,6 +1686,7 @@ address=/wuyekanba.com/127.0.0.1
|
||||
address=/wvstatic.cn/127.0.0.1
|
||||
address=/wwlolbs.com/127.0.0.1
|
||||
address=/wxbdfm.com/127.0.0.1
|
||||
address=/wxs666.cn/127.0.0.1
|
||||
address=/wxstatic.cn/127.0.0.1
|
||||
address=/wxxfqc.com/127.0.0.1
|
||||
address=/wyhzzy.com/127.0.0.1
|
||||
@ -1912,6 +1929,7 @@ address=/zitanmushu.com/127.0.0.1
|
||||
address=/ziyuantx.com/127.0.0.1
|
||||
address=/zjhim.com/127.0.0.1
|
||||
address=/zjhoudao.com/127.0.0.1
|
||||
address=/zjrtuhds.top/127.0.0.1
|
||||
address=/zl588.com/127.0.0.1
|
||||
address=/zmgod.com/127.0.0.1
|
||||
address=/zmlled.cn/127.0.0.1
|
||||
@ -2127,7 +2145,6 @@ address=/imgadsame.liba.com/127.0.0.1
|
||||
address=/inte.sogou.com/127.0.0.1
|
||||
address=/ivy.pconline.com.cn/127.0.0.1
|
||||
address=/iwanad.baidu.com/127.0.0.1
|
||||
address=/j.6avz.com/127.0.0.1
|
||||
address=/j.avz4.com/127.0.0.1
|
||||
address=/jmsyzj.com/127.0.0.1
|
||||
address=/js.45bubu.com/127.0.0.1
|
||||
@ -2755,6 +2772,7 @@ address=/lraa.xiaoniutui.com/127.0.0.1
|
||||
address=/luoshenbest.cn/127.0.0.1
|
||||
address=/lv.myapks.com/127.0.0.1
|
||||
address=/lyz.radio366.com/127.0.0.1
|
||||
address=/m1.100how.com/127.0.0.1
|
||||
address=/m1.27com.com/127.0.0.1
|
||||
address=/m1.51kaowang.com/127.0.0.1
|
||||
address=/m1.81312.com/127.0.0.1
|
||||
@ -2804,6 +2822,7 @@ address=/pingshu365.xyz/127.0.0.1
|
||||
address=/pkk1.zuimeiniwo.com/127.0.0.1
|
||||
address=/pp.wayqq.com/127.0.0.1
|
||||
address=/ppt.tianya999.com/127.0.0.1
|
||||
address=/pss.meizhejie.com/127.0.0.1
|
||||
address=/psywed.com/127.0.0.1
|
||||
address=/ptw.la/127.0.0.1
|
||||
address=/q1.yyxwzx.com/127.0.0.1
|
||||
@ -2822,6 +2841,7 @@ address=/rdbd.xsread.com/127.0.0.1
|
||||
address=/rmcxw.cn/127.0.0.1
|
||||
address=/rmcxw.net/127.0.0.1
|
||||
address=/ruan88.com/127.0.0.1
|
||||
address=/s.yaozui.com/127.0.0.1
|
||||
address=/s.zixuntop.com/127.0.0.1
|
||||
address=/s1.dapenti.com/127.0.0.1
|
||||
address=/s1.dugoogle.com/127.0.0.1
|
||||
@ -2870,6 +2890,7 @@ address=/undm.qibulo.com/127.0.0.1
|
||||
address=/union1.cnbetacdn.com/127.0.0.1
|
||||
address=/uniondm.cz88.net/127.0.0.1
|
||||
address=/usejj.wangkl.com/127.0.0.1
|
||||
address=/uu1.3gu.com/127.0.0.1
|
||||
address=/uuu.pctowap.com/127.0.0.1
|
||||
address=/v1.kwpewga.cn/127.0.0.1
|
||||
address=/v1.phb123.com/127.0.0.1
|
||||
@ -3063,6 +3084,7 @@ address=/runkao.net/127.0.0.1
|
||||
address=/stunninglover.com/127.0.0.1
|
||||
address=/cryptaloot.pro/127.0.0.1
|
||||
address=/01w47q.cn/127.0.0.1
|
||||
address=/0217qpineuxbcdhopswkvf.xyz/127.0.0.1
|
||||
address=/0234408.cn/127.0.0.1
|
||||
address=/02m5j.cn/127.0.0.1
|
||||
address=/03196688.com/127.0.0.1
|
||||
@ -3086,6 +3108,7 @@ address=/118ex.cn/127.0.0.1
|
||||
address=/119cgpt.com/127.0.0.1
|
||||
address=/12381236.com/127.0.0.1
|
||||
address=/12jf3.cn/127.0.0.1
|
||||
address=/12rge.xyz/127.0.0.1
|
||||
address=/12rng.cn/127.0.0.1
|
||||
address=/1314sss.top/127.0.0.1
|
||||
address=/1494.top/127.0.0.1
|
||||
@ -3167,6 +3190,7 @@ address=/609623.com/127.0.0.1
|
||||
address=/63xs.com:8016/127.0.0.1
|
||||
address=/64si.com/127.0.0.1
|
||||
address=/678sky.com/127.0.0.1
|
||||
address=/688ct.com/127.0.0.1
|
||||
address=/6945k6.cn/127.0.0.1
|
||||
address=/69u0t.cn/127.0.0.1
|
||||
address=/69yll.cn/127.0.0.1
|
||||
@ -3297,6 +3321,7 @@ address=/baiyangzs.com/127.0.0.1
|
||||
address=/baolutongwuye.cn/127.0.0.1
|
||||
address=/bapkt.com/127.0.0.1
|
||||
address=/barnfps.com/127.0.0.1
|
||||
address=/bbbr8.com/127.0.0.1
|
||||
address=/bbbx.xyz/127.0.0.1
|
||||
address=/bbeyay41026.cn/127.0.0.1
|
||||
address=/bbvjs.com/127.0.0.1
|
||||
@ -3514,6 +3539,7 @@ address=/dkmnn.top/127.0.0.1
|
||||
address=/dldsrs.com/127.0.0.1
|
||||
address=/dlouf.com/127.0.0.1
|
||||
address=/dlvnxf.cn/127.0.0.1
|
||||
address=/dmouy.cn/127.0.0.1
|
||||
address=/dmpsj.cn/127.0.0.1
|
||||
address=/dn189.com/127.0.0.1
|
||||
address=/dnfeu.com/127.0.0.1
|
||||
@ -3919,6 +3945,7 @@ address=/jlvskg.cn/127.0.0.1
|
||||
address=/jlxzt.com/127.0.0.1
|
||||
address=/jmxlaser.com/127.0.0.1
|
||||
address=/jndczg.com/127.0.0.1
|
||||
address=/jnmqym4.cn/127.0.0.1
|
||||
address=/jnsdkjzs.com/127.0.0.1
|
||||
address=/jollyspring.com/127.0.0.1
|
||||
address=/jotrening.com/127.0.0.1
|
||||
@ -3975,6 +4002,7 @@ address=/kjfhe.com/127.0.0.1
|
||||
address=/kjhfy.com/127.0.0.1
|
||||
address=/kl6636.net/127.0.0.1
|
||||
address=/klgzzs.cn/127.0.0.1
|
||||
address=/klorn.cn/127.0.0.1
|
||||
address=/klsadm.com/127.0.0.1
|
||||
address=/kltent.cn/127.0.0.1
|
||||
address=/kmfnkj.com/127.0.0.1
|
||||
@ -4297,6 +4325,7 @@ address=/qlaot.com/127.0.0.1
|
||||
address=/qldua.cn/127.0.0.1
|
||||
address=/qloer.com/127.0.0.1
|
||||
address=/qlonglong.com/127.0.0.1
|
||||
address=/qlssbq.cn/127.0.0.1
|
||||
address=/qneit.com/127.0.0.1
|
||||
address=/qq0au.cn/127.0.0.1
|
||||
address=/qqdashabi.top/127.0.0.1
|
||||
@ -4355,6 +4384,7 @@ address=/sczhilong.cn/127.0.0.1
|
||||
address=/sdabfw.cn/127.0.0.1
|
||||
address=/sdahxz.xyz/127.0.0.1
|
||||
address=/sdaiv.com/127.0.0.1
|
||||
address=/sdakxz.xyz/127.0.0.1
|
||||
address=/sdgdtz.cn/127.0.0.1
|
||||
address=/sdkdm.com/127.0.0.1
|
||||
address=/sdsqyyc.com/127.0.0.1
|
||||
@ -4393,6 +4423,7 @@ address=/smdhek58726.cn/127.0.0.1
|
||||
address=/smpdth.cn/127.0.0.1
|
||||
address=/smvip8.cn/127.0.0.1
|
||||
address=/smxay.com/127.0.0.1
|
||||
address=/sokoyo-fq.com/127.0.0.1
|
||||
address=/sonomoyo.com/127.0.0.1
|
||||
address=/sonsang.cn/127.0.0.1
|
||||
address=/sosjyx.com/127.0.0.1
|
||||
@ -4692,6 +4723,7 @@ address=/yajiuwz.xyz/127.0.0.1
|
||||
address=/yanbenji.cn/127.0.0.1
|
||||
address=/yangzhenpeng.top/127.0.0.1
|
||||
address=/yanjunbo.com/127.0.0.1
|
||||
address=/yantairuide.com/127.0.0.1
|
||||
address=/ybaih.com/127.0.0.1
|
||||
address=/ybaiu.com/127.0.0.1
|
||||
address=/ybanj.com/127.0.0.1
|
||||
@ -4716,6 +4748,7 @@ address=/yicixingjinkou.com/127.0.0.1
|
||||
address=/yicuntian.cn/127.0.0.1
|
||||
address=/yierheng.top/127.0.0.1
|
||||
address=/yijieweizf.com/127.0.0.1
|
||||
address=/yijuxie.com/127.0.0.1
|
||||
address=/yikuaiqian.com.cn/127.0.0.1
|
||||
address=/yimai51.cn/127.0.0.1
|
||||
address=/yimeize.cn/127.0.0.1
|
||||
@ -4797,6 +4830,7 @@ address=/zhamm.cn/127.0.0.1
|
||||
address=/zhfyws.com/127.0.0.1
|
||||
address=/zhivalley.cn/127.0.0.1
|
||||
address=/zhiyaowan.cn/127.0.0.1
|
||||
address=/zhongchengzp.com/127.0.0.1
|
||||
address=/zhongfujiaoyu.cn/127.0.0.1
|
||||
address=/zhongwangmy.cn/127.0.0.1
|
||||
address=/zhouqin520.top/127.0.0.1
|
||||
@ -4882,173 +4916,357 @@ address=/qhdbfjx.com/127.0.0.1
|
||||
address=/sohu999.com/127.0.0.1
|
||||
address=/tcmdz.com/127.0.0.1
|
||||
address=/withad.cn/127.0.0.1
|
||||
address=/1getbestf1le3.xyz/127.0.0.1
|
||||
address=/4t6u1amm3t3n.com/127.0.0.1
|
||||
address=/9t5.me/127.0.0.1
|
||||
address=/abgligarchan.com/127.0.0.1
|
||||
address=/acmsg.online/127.0.0.1
|
||||
address=/acticgreasonsc.info/127.0.0.1
|
||||
address=/adfrastingathles.info/127.0.0.1
|
||||
address=/adsrv.me/127.0.0.1
|
||||
address=/adziondin.club/127.0.0.1
|
||||
address=/aggravedgaree.info/127.0.0.1
|
||||
address=/agrammemarg.info/127.0.0.1
|
||||
address=/agreenikeru.site/127.0.0.1
|
||||
address=/aickeeho.com/127.0.0.1
|
||||
address=/ailaskarc.club/127.0.0.1
|
||||
address=/ailwayssteverin.info/127.0.0.1
|
||||
address=/aimassare.club/127.0.0.1
|
||||
address=/aimrawwas.site/127.0.0.1
|
||||
address=/airsanguages.info/127.0.0.1
|
||||
address=/airstossiplarge.info/127.0.0.1
|
||||
address=/albalbant.com/127.0.0.1
|
||||
address=/alealebag.site/127.0.0.1
|
||||
address=/aleapeact.club/127.0.0.1
|
||||
address=/alhistoriousg.info/127.0.0.1
|
||||
address=/aliticalpassister.info/127.0.0.1
|
||||
address=/alldeveldefinite.info/127.0.0.1
|
||||
address=/allycollegedstrie.info/127.0.0.1
|
||||
address=/ampallall.site/127.0.0.1
|
||||
address=/aniashboy.club/127.0.0.1
|
||||
address=/anybagant.club/127.0.0.1
|
||||
address=/anycadark.site/127.0.0.1
|
||||
address=/armashair.site/127.0.0.1
|
||||
address=/artantash.club/127.0.0.1
|
||||
address=/arthwhilearthu.info/127.0.0.1
|
||||
address=/artneesrparkete.info/127.0.0.1
|
||||
address=/ashaidart.site/127.0.0.1
|
||||
address=/ashamparm.site/127.0.0.1
|
||||
address=/askaspalb.online/127.0.0.1
|
||||
address=/atelovesinothic.info/127.0.0.1
|
||||
address=/atesbrothereso.info/127.0.0.1
|
||||
address=/atoultou.com/127.0.0.1
|
||||
address=/augnuxun.net/127.0.0.1
|
||||
address=/aujaujoa.net/127.0.0.1
|
||||
address=/aurdeert.net/127.0.0.1
|
||||
address=/authornernsa.pro/127.0.0.1
|
||||
address=/auxml.com/127.0.0.1
|
||||
address=/avwincall.info/127.0.0.1
|
||||
address=/awehobrasp.live/127.0.0.1
|
||||
address=/aweinkbum.com/127.0.0.1
|
||||
address=/awhootoa.net/127.0.0.1
|
||||
address=/awhoufob.com/127.0.0.1
|
||||
address=/ayrovalcontain.info/127.0.0.1
|
||||
address=/bathibsa.com/127.0.0.1
|
||||
address=/bauthair.net/127.0.0.1
|
||||
address=/bebreloomr.com/127.0.0.1
|
||||
address=/beewanuk.net/127.0.0.1
|
||||
address=/beiven.pw/127.0.0.1
|
||||
address=/bestvideo2019.xyz/127.0.0.1
|
||||
address=/bidiology.com/127.0.0.1
|
||||
address=/binsatbee.club/127.0.0.1
|
||||
address=/bityah-sym.com/127.0.0.1
|
||||
address=/bloglife24.com/127.0.0.1
|
||||
address=/boratestfishke.info/127.0.0.1
|
||||
address=/boubeeth.com/127.0.0.1
|
||||
address=/boursnormaticm.info/127.0.0.1
|
||||
address=/bupserge.com/127.0.0.1
|
||||
address=/cadslimz.com/127.0.0.1
|
||||
address=/camantasp.club/127.0.0.1
|
||||
address=/canonch.pro/127.0.0.1
|
||||
address=/casinohacksforyou.com/127.0.0.1
|
||||
address=/cauthuny.net/127.0.0.1
|
||||
address=/cdnads.com/127.0.0.1
|
||||
address=/ceincreatedaughtcha.info/127.0.0.1
|
||||
address=/ceparateauab.info/127.0.0.1
|
||||
address=/certakesime.site/127.0.0.1
|
||||
address=/cespousseluniv.info/127.0.0.1
|
||||
address=/changement.pro/127.0.0.1
|
||||
address=/chengaib.net/127.0.0.1
|
||||
address=/choorgiw.net/127.0.0.1
|
||||
address=/chugagre.com/127.0.0.1
|
||||
address=/ckardwithinktab.info/127.0.0.1
|
||||
address=/clickathere.com/127.0.0.1
|
||||
address=/clickcdn.co/127.0.0.1
|
||||
address=/collectpush.com/127.0.0.1
|
||||
address=/compensions.pro/127.0.0.1
|
||||
address=/counevan.pro/127.0.0.1
|
||||
address=/countertrck.com/127.0.0.1
|
||||
address=/cpalabtracking.com/127.0.0.1
|
||||
address=/cpcmart.com/127.0.0.1
|
||||
address=/criminglynuk.pro/127.0.0.1
|
||||
address=/cryartarm.online/127.0.0.1
|
||||
address=/cssimplicanab.info/127.0.0.1
|
||||
address=/ctsjackupspete.info/127.0.0.1
|
||||
address=/culreelt.com/127.0.0.1
|
||||
address=/cupallask.site/127.0.0.1
|
||||
address=/cutopportings.info/127.0.0.1
|
||||
address=/cyneburg-yam.com/127.0.0.1
|
||||
address=/dacoloment.pro/127.0.0.1
|
||||
address=/dainaith.net/127.0.0.1
|
||||
address=/dardwebertoha.info/127.0.0.1
|
||||
address=/dating2cloud.org/127.0.0.1
|
||||
address=/dcontonalscho.info/127.0.0.1
|
||||
address=/dddomainccc.com/127.0.0.1
|
||||
address=/decisionediv.site/127.0.0.1
|
||||
address=/delainlygoverhe.info/127.0.0.1
|
||||
address=/denotatorum.site/127.0.0.1
|
||||
address=/desigactinific.pro/127.0.0.1
|
||||
address=/dgafgadsgkjg.top/127.0.0.1
|
||||
address=/diantcummiere.info/127.0.0.1
|
||||
address=/dimessing-parker.com/127.0.0.1
|
||||
address=/dingsincernett.info/127.0.0.1
|
||||
address=/discoverapp.xyz/127.0.0.1
|
||||
address=/ditookry.com/127.0.0.1
|
||||
address=/dmastescaugh.info/127.0.0.1
|
||||
address=/dolsoste.com/127.0.0.1
|
||||
address=/domisesvivin.info/127.0.0.1
|
||||
address=/dooptoug.net/127.0.0.1
|
||||
address=/dorthuredwardles.info/127.0.0.1
|
||||
address=/dortoolr.com/127.0.0.1
|
||||
address=/duchoono.com/127.0.0.1
|
||||
address=/duhochid.net/127.0.0.1
|
||||
address=/duxumpou.com/127.0.0.1
|
||||
address=/e2ertt.com/127.0.0.1
|
||||
address=/echoazou.com/127.0.0.1
|
||||
address=/edcritessuspi.info/127.0.0.1
|
||||
address=/edencourtbrita.info/127.0.0.1
|
||||
address=/edoutoam.net/127.0.0.1
|
||||
address=/edvforeveretest.info/127.0.0.1
|
||||
address=/eeltaung.com/127.0.0.1
|
||||
address=/eengaums.com/127.0.0.1
|
||||
address=/eergurty.net/127.0.0.1
|
||||
address=/eforeantheirma.info/127.0.0.1
|
||||
address=/egroacho.com/127.0.0.1
|
||||
address=/elastinabuker.site/127.0.0.1
|
||||
address=/eleasuredfas.info/127.0.0.1
|
||||
address=/ememoricane.info/127.0.0.1
|
||||
address=/encountryf.pro/127.0.0.1
|
||||
address=/enormitteen.pro/127.0.0.1
|
||||
address=/enseptedsome.info/127.0.0.1
|
||||
address=/entstronicsform.info/127.0.0.1
|
||||
address=/entualagreetsd.info/127.0.0.1
|
||||
address=/epresententifi.info/127.0.0.1
|
||||
address=/eralsstroying.info/127.0.0.1
|
||||
address=/eraltradiansid.info/127.0.0.1
|
||||
address=/erkhxw.com/127.0.0.1
|
||||
address=/erversarycompa.info/127.0.0.1
|
||||
address=/esauwoan.com/127.0.0.1
|
||||
address=/estionexperime.info/127.0.0.1
|
||||
address=/eunformeranothe.info/127.0.0.1
|
||||
address=/eyhempsedinte.info/127.0.0.1
|
||||
address=/fadsans.com/127.0.0.1
|
||||
address=/fadsanz.com/127.0.0.1
|
||||
address=/fadsecs.com/127.0.0.1
|
||||
address=/fadsims.com/127.0.0.1
|
||||
address=/fadsips.com/127.0.0.1
|
||||
address=/fadslims.com/127.0.0.1
|
||||
address=/fadsoks.com/127.0.0.1
|
||||
address=/fadspmz.com/127.0.0.1
|
||||
address=/fagmomqua.site/127.0.0.1
|
||||
address=/fazoumee.net/127.0.0.1
|
||||
address=/feed.r-tb.com/127.0.0.1
|
||||
address=/feed777.me/127.0.0.1
|
||||
address=/feelineweatyeng.info/127.0.0.1
|
||||
address=/ffortyimagist.info/127.0.0.1
|
||||
address=/fishkekcamp.info/127.0.0.1
|
||||
address=/fixsirrod.site/127.0.0.1
|
||||
address=/flowwiththetide.xyz/127.0.0.1
|
||||
address=/fufoatch.com/127.0.0.1
|
||||
address=/fuyuap.xyz/127.0.0.1
|
||||
address=/g2afse.com/127.0.0.1
|
||||
address=/gadsans.com/127.0.0.1
|
||||
address=/gadsanz.com/127.0.0.1
|
||||
address=/gadsats.com/127.0.0.1
|
||||
address=/gadsecz.com/127.0.0.1
|
||||
address=/gadsimz.com/127.0.0.1
|
||||
address=/gadsipz.com/127.0.0.1
|
||||
address=/gadskis.com/127.0.0.1
|
||||
address=/gadsokz.com/127.0.0.1
|
||||
address=/gapsfartrely.best/127.0.0.1
|
||||
address=/gardoult.com/127.0.0.1
|
||||
address=/gdmconvtrck.com/127.0.0.1
|
||||
address=/gebralefukim.site/127.0.0.1
|
||||
address=/gedspecificano.info/127.0.0.1
|
||||
address=/gleergie.net/127.0.0.1
|
||||
address=/global-surveys.co/127.0.0.1
|
||||
address=/globwo.online/127.0.0.1
|
||||
address=/glomseci.com/127.0.0.1
|
||||
address=/gludraus.com/127.0.0.1
|
||||
address=/go2.global/127.0.0.1
|
||||
address=/gobovoul.net/127.0.0.1
|
||||
address=/gongeeta.net/127.0.0.1
|
||||
address=/gragliapastri.info/127.0.0.1
|
||||
address=/grampouz.net/127.0.0.1
|
||||
address=/graunada.com/127.0.0.1
|
||||
address=/grementessenti.info/127.0.0.1
|
||||
address=/grexoacu.com/127.0.0.1
|
||||
address=/groackam.com/127.0.0.1
|
||||
address=/grubsoan.com/127.0.0.1
|
||||
address=/h3btqpy2abc3.com/127.0.0.1
|
||||
address=/haftobso.net/127.0.0.1
|
||||
address=/hamadotax.site/127.0.0.1
|
||||
address=/haypaydig.club/127.0.0.1
|
||||
address=/heckagny.com/127.0.0.1
|
||||
address=/himselvepostly.site/127.0.0.1
|
||||
address=/hoosorie.com/127.0.0.1
|
||||
address=/hounicuy.com/127.0.0.1
|
||||
address=/housandady.site/127.0.0.1
|
||||
address=/housopsi.net/127.0.0.1
|
||||
address=/huckauhy.com/127.0.0.1
|
||||
address=/hwhiffonprotect.info/127.0.0.1
|
||||
address=/ideliv.net/127.0.0.1
|
||||
address=/iglaique.net/127.0.0.1
|
||||
address=/imounsos.com/127.0.0.1
|
||||
address=/ingdaughtexam.info/127.0.0.1
|
||||
address=/ingprographyt.info/127.0.0.1
|
||||
address=/inpagepush.com/127.0.0.1
|
||||
address=/instantresp.com/127.0.0.1
|
||||
address=/inwig3aqg9xq.com/127.0.0.1
|
||||
address=/ionrefreshotsev.info/127.0.0.1
|
||||
address=/ipsoorel.com/127.0.0.1
|
||||
address=/iulianus-mon.com/127.0.0.1
|
||||
address=/jahediretictho.info/127.0.0.1
|
||||
address=/jamestop.xyz/127.0.0.1
|
||||
address=/jaugloup.com/127.0.0.1
|
||||
address=/jechesmacaltont.info/127.0.0.1
|
||||
address=/jicmutse.com/127.0.0.1
|
||||
address=/jinsoopt.net/127.0.0.1
|
||||
address=/joawapti.net/127.0.0.1
|
||||
address=/justookr.net/127.0.0.1
|
||||
address=/katerigordas.pro/127.0.0.1
|
||||
address=/kaukoany.net/127.0.0.1
|
||||
address=/kcampairsang.info/127.0.0.1
|
||||
address=/keepaira.net/127.0.0.1
|
||||
address=/kegpoihat.club/127.0.0.1
|
||||
address=/ketstheralinver.info/127.0.0.1
|
||||
address=/kitferdog.site/127.0.0.1
|
||||
address=/knottishhuntilc.info/127.0.0.1
|
||||
address=/koocaucy.com/127.0.0.1
|
||||
address=/koutobey.net/127.0.0.1
|
||||
address=/kudzuphloemgunk.tech/127.0.0.1
|
||||
address=/kumanaun.net/127.0.0.1
|
||||
address=/labortiontrifee.info/127.0.0.1
|
||||
address=/ladsdown.com/127.0.0.1
|
||||
address=/laichaim.net/127.0.0.1
|
||||
address=/lassistslegisten.info/127.0.0.1
|
||||
address=/ldevillaechildren.info/127.0.0.1
|
||||
address=/leathtexactlycin.info/127.0.0.1
|
||||
address=/lebkeresxa.ml/127.0.0.1
|
||||
address=/leontius-eli.com/127.0.0.1
|
||||
address=/lessite.pro/127.0.0.1
|
||||
address=/linkev.com/127.0.0.1
|
||||
address=/loaphour.com/127.0.0.1
|
||||
address=/locothet.com/127.0.0.1
|
||||
address=/loobusir.com/127.0.0.1
|
||||
address=/lutachechu.pro/127.0.0.1
|
||||
address=/lynormationpas.info/127.0.0.1
|
||||
address=/lyzenoti.pro/127.0.0.1
|
||||
address=/madplypie.club/127.0.0.1
|
||||
address=/madsans.com/127.0.0.1
|
||||
address=/maihaimo.com/127.0.0.1
|
||||
address=/maipoted.com/127.0.0.1
|
||||
address=/mauzobou.net/127.0.0.1
|
||||
address=/mbethnarrowe.info/127.0.0.1
|
||||
address=/mbledeparatea.info/127.0.0.1
|
||||
address=/meehaina.net/127.0.0.1
|
||||
address=/megmobpoi.club/127.0.0.1
|
||||
address=/melo.space/127.0.0.1
|
||||
address=/metricfast.com/127.0.0.1
|
||||
address=/mewnetwag.site/127.0.0.1
|
||||
address=/mibsooks.net/127.0.0.1
|
||||
address=/mikrairs.com/127.0.0.1
|
||||
address=/mirafaren.pw/127.0.0.1
|
||||
address=/moapteeg.net/127.0.0.1
|
||||
address=/mob1ledev1ces.com/127.0.0.1
|
||||
address=/moderningvigil.pro/127.0.0.1
|
||||
address=/monadplug.com/127.0.0.1
|
||||
address=/mopushy.com/127.0.0.1
|
||||
address=/mozgvya.com/127.0.0.1
|
||||
address=/mprisedluxemb.info/127.0.0.1
|
||||
address=/mptedcazdep.info/127.0.0.1
|
||||
address=/nadjustifygas.info/127.0.0.1
|
||||
address=/nailowhe.net/127.0.0.1
|
||||
address=/nbasicalbuffere.info/127.0.0.1
|
||||
address=/nbf9b5aurl.com/127.0.0.1
|
||||
address=/ncefoundanges.info/127.0.0.1
|
||||
address=/ncylegiatede.info/127.0.0.1
|
||||
address=/nelsdecademi.info/127.0.0.1
|
||||
address=/neltoole.net/127.0.0.1
|
||||
address=/nesoaghu.net/127.0.0.1
|
||||
address=/nessendencec.info/127.0.0.1
|
||||
address=/netcatx.com/127.0.0.1
|
||||
address=/netpatas.com/127.0.0.1
|
||||
address=/newvideos.xyz/127.0.0.1
|
||||
address=/nfarmerlycompa.info/127.0.0.1
|
||||
address=/ngholishingsm.info/127.0.0.1
|
||||
address=/niebrundveepursuede.info/127.0.0.1
|
||||
address=/nishathlessharr.info/127.0.0.1
|
||||
address=/nishfarmerlypas.info/127.0.0.1
|
||||
address=/nlzz7a3md4sx.com/127.0.0.1
|
||||
address=/noagloot.net/127.0.0.1
|
||||
address=/noaloheb.com/127.0.0.1
|
||||
address=/noclef.com/127.0.0.1
|
||||
address=/noglolra.com/127.0.0.1
|
||||
address=/norakseemlyntr.info/127.0.0.1
|
||||
address=/notification-centar.com/127.0.0.1
|
||||
address=/notifysrv.com/127.0.0.1
|
||||
address=/noutstancerewe.info/127.0.0.1
|
||||
address=/ntsartingaccura.info/127.0.0.1
|
||||
address=/ntsimprovide.info/127.0.0.1
|
||||
address=/oajujirg.net/127.0.0.1
|
||||
address=/obaukads.com/127.0.0.1
|
||||
address=/obefjbb4mykw.com/127.0.0.1
|
||||
address=/od0gddq27wkk.com/127.0.0.1
|
||||
address=/officultpolicit.pro/127.0.0.1
|
||||
address=/ohmchoicechi.online/127.0.0.1
|
||||
address=/olicyconsendsi.info/127.0.0.1
|
||||
address=/ommodatesjoin.info/127.0.0.1
|
||||
address=/omoaxaus.net/127.0.0.1
|
||||
address=/onalentressionw.info/127.0.0.1
|
||||
address=/onindexicowillio.info/127.0.0.1
|
||||
address=/onscribedpastrong.info/127.0.0.1
|
||||
address=/ooxoatse.com/127.0.0.1
|
||||
address=/ophoahik.net/127.0.0.1
|
||||
address=/optvx.com/127.0.0.1
|
||||
address=/oratedencourse.info/127.0.0.1
|
||||
address=/oratorsresente.info/127.0.0.1
|
||||
address=/orcjagpox.com/127.0.0.1
|
||||
address=/ortantchangem.info/127.0.0.1
|
||||
address=/oselyprepartie.info/127.0.0.1
|
||||
address=/osmondards.pro/127.0.0.1
|
||||
address=/otsurvedchange.info/127.0.0.1
|
||||
address=/oughgoalityabo.info/127.0.0.1
|
||||
address=/ountapaveralle.info/127.0.0.1
|
||||
address=/ouzoadru.net/127.0.0.1
|
||||
address=/overribleintena.info/127.0.0.1
|
||||
address=/oweverycanvas.info/127.0.0.1
|
||||
address=/padsabz.com/127.0.0.1
|
||||
address=/padsatz.com/127.0.0.1
|
||||
address=/padsecs.com/127.0.0.1
|
||||
address=/pagiwp.com/127.0.0.1
|
||||
address=/pagnookr.net/127.0.0.1
|
||||
address=/parketbedde.info/127.0.0.1
|
||||
address=/pasaigul.com/127.0.0.1
|
||||
address=/paula-secundinus.com/127.0.0.1
|
||||
address=/paveralleycoun.info/127.0.0.1
|
||||
address=/peethobo.com/127.0.0.1
|
||||
address=/performanceonclick.com/127.0.0.1
|
||||
address=/petchesa.net/127.0.0.1
|
||||
address=/pgradualirelev.info/127.0.0.1
|
||||
address=/phabsoun.net/127.0.0.1
|
||||
address=/pharougn.com/127.0.0.1
|
||||
address=/pheekrie.com/127.0.0.1
|
||||
address=/pheevoug.com/127.0.0.1
|
||||
address=/phookree.com/127.0.0.1
|
||||
address=/plyvitablesagree.info/127.0.0.1
|
||||
@ -5056,85 +5274,164 @@ address=/poleonaryprac.info/127.0.0.1
|
||||
address=/portedlysarcatc.info/127.0.0.1
|
||||
address=/possipationd.info/127.0.0.1
|
||||
address=/poubotem.com/127.0.0.1
|
||||
address=/poudeeri.com/127.0.0.1
|
||||
address=/powerapp.download/127.0.0.1
|
||||
address=/poxeemso.com/127.0.0.1
|
||||
address=/prevealhealth.info/127.0.0.1
|
||||
address=/productorbash.info/127.0.0.1
|
||||
address=/productorsy.pro/127.0.0.1
|
||||
address=/provisituske.site/127.0.0.1
|
||||
address=/pryrhoohs.site/127.0.0.1
|
||||
address=/psoaksoo.com/127.0.0.1
|
||||
address=/psoanouy.net/127.0.0.1
|
||||
address=/ptaivain.net/127.0.0.1
|
||||
address=/ptiftoud.com/127.0.0.1
|
||||
address=/ptogheeb.net/127.0.0.1
|
||||
address=/ptoulsey.com/127.0.0.1
|
||||
address=/puntoenun.site/127.0.0.1
|
||||
address=/push.house/127.0.0.1
|
||||
address=/pushpush.net/127.0.0.1
|
||||
address=/pushworldtool.com/127.0.0.1
|
||||
address=/rdsb2.club/127.0.0.1
|
||||
address=/realsrv.com/127.0.0.1
|
||||
address=/realtime-bid.com/127.0.0.1
|
||||
address=/reasonalattracke.info/127.0.0.1
|
||||
address=/redads.biz/127.0.0.1
|
||||
address=/redappeneticfr.info/127.0.0.1
|
||||
address=/redewdit.pro/127.0.0.1
|
||||
address=/redirect2719.ws/127.0.0.1
|
||||
address=/refunsiy.net/127.0.0.1
|
||||
address=/replentcautiful.info/127.0.0.1
|
||||
address=/resbargarettybe.info/127.0.0.1
|
||||
address=/returnessety.site/127.0.0.1
|
||||
address=/revolutelyplan.info/127.0.0.1
|
||||
address=/rexadvert.xyz/127.0.0.1
|
||||
address=/rgvqcsxqge.com/127.0.0.1
|
||||
address=/rheaddelainlyco.info/127.0.0.1
|
||||
address=/riahungardedig.info/127.0.0.1
|
||||
address=/ridgelorridorsag.info/127.0.0.1
|
||||
address=/rinedcountilconsiden.info/127.0.0.1
|
||||
address=/rintellsfundrew.info/127.0.0.1
|
||||
address=/ripslifestassoci.info/127.0.0.1
|
||||
address=/riptukri.net/127.0.0.1
|
||||
address=/rizeintellingente.info/127.0.0.1
|
||||
address=/robjamguy.club/127.0.0.1
|
||||
address=/ronoutom.net/127.0.0.1
|
||||
address=/roustast.net/127.0.0.1
|
||||
address=/routeme.one/127.0.0.1
|
||||
address=/routeserve.info/127.0.0.1
|
||||
address=/rsleaderingmu.info/127.0.0.1
|
||||
address=/runmeethoomes.info/127.0.0.1
|
||||
address=/rydresa.info/127.0.0.1
|
||||
address=/sadorsagreeng.info/127.0.0.1
|
||||
address=/sadsecz.com/127.0.0.1
|
||||
address=/santrateduk.site/127.0.0.1
|
||||
address=/sapsixysho.pro/127.0.0.1
|
||||
address=/searchmulty.com/127.0.0.1
|
||||
address=/securecloud-dt.com/127.0.0.1
|
||||
address=/seepsocu.net/127.0.0.1
|
||||
address=/sexagogal.site/127.0.0.1
|
||||
address=/sgftrrs.com/127.0.0.1
|
||||
address=/shenouth.com/127.0.0.1
|
||||
address=/shiptoud.com/127.0.0.1
|
||||
address=/shoawhom.com/127.0.0.1
|
||||
address=/silsfrastinggove.info/127.0.0.1
|
||||
address=/singthouthappi.info/127.0.0.1
|
||||
address=/sisewepod.com/127.0.0.1
|
||||
address=/sisterncoalitical.info/127.0.0.1
|
||||
address=/smenqskfmpfxnb.bid/127.0.0.1
|
||||
address=/soagrist.net/127.0.0.1
|
||||
address=/soofeest.net/127.0.0.1
|
||||
address=/sousaira.com/127.0.0.1
|
||||
address=/spentalwithinga.info/127.0.0.1
|
||||
address=/ssqualismother.info/127.0.0.1
|
||||
address=/stargoug.com/127.0.0.1
|
||||
address=/stoassod.com/127.0.0.1
|
||||
address=/stonseeb.net/127.0.0.1
|
||||
address=/streamclub.best/127.0.0.1
|
||||
address=/streamclub.fun/127.0.0.1
|
||||
address=/styheremo.site/127.0.0.1
|
||||
address=/supertrackingz.com/127.0.0.1
|
||||
address=/surfacecharo.info/127.0.0.1
|
||||
address=/taifouwo.com/127.0.0.1
|
||||
address=/tamechangekn.info/127.0.0.1
|
||||
address=/tarawerap.com/127.0.0.1
|
||||
address=/tartoals.net/127.0.0.1
|
||||
address=/taryarguestio.info/127.0.0.1
|
||||
address=/televeniesuc.pro/127.0.0.1
|
||||
address=/tentdinationgab.info/127.0.0.1
|
||||
address=/terialnevitiesini.info/127.0.0.1
|
||||
address=/thamsais.com/127.0.0.1
|
||||
address=/theeburs.com/127.0.0.1
|
||||
address=/thefastpush.com/127.0.0.1
|
||||
address=/thefuncoolstuff.com/127.0.0.1
|
||||
address=/themselvebu.site/127.0.0.1
|
||||
address=/thigeeph.com/127.0.0.1
|
||||
address=/thighiny.com/127.0.0.1
|
||||
address=/thimoaph.net/127.0.0.1
|
||||
address=/thitegnu.net/127.0.0.1
|
||||
address=/thodsserentlya.info/127.0.0.1
|
||||
address=/thomagejut.site/127.0.0.1
|
||||
address=/tifybecausingp.info/127.0.0.1
|
||||
address=/tionpronomyim.info/127.0.0.1
|
||||
address=/tiveacquisitsprett.info/127.0.0.1
|
||||
address=/toapsira.net/127.0.0.1
|
||||
address=/tonewithough.info/127.0.0.1
|
||||
address=/totogetica.com/127.0.0.1
|
||||
address=/trackingzen.com/127.0.0.1
|
||||
address=/trackspeeder.com/127.0.0.1
|
||||
address=/trkunited.com/127.0.0.1
|
||||
address=/tujestimater.pro/127.0.0.1
|
||||
address=/uagesspecifica.info/127.0.0.1
|
||||
address=/ufoukolt.com/127.0.0.1
|
||||
address=/ugoupams.com/127.0.0.1
|
||||
address=/uinelypresse.info/127.0.0.1
|
||||
address=/ukcomparends.pro/127.0.0.1
|
||||
address=/ummerciseha.info/127.0.0.1
|
||||
address=/untridrisa.cf/127.0.0.1
|
||||
address=/upush.co/127.0.0.1
|
||||
address=/uremechangec.info/127.0.0.1
|
||||
address=/urgwritishimpos.info/127.0.0.1
|
||||
address=/ushooque.net/127.0.0.1
|
||||
address=/uthworkreaseu.info/127.0.0.1
|
||||
address=/utpenedwritted.info/127.0.0.1
|
||||
address=/utstancecaricit.info/127.0.0.1
|
||||
address=/veewakim.net/127.0.0.1
|
||||
address=/veremund-hon.com/127.0.0.1
|
||||
address=/viatepigan.com/127.0.0.1
|
||||
address=/viebitgreasy.email/127.0.0.1
|
||||
address=/vimdiebid.club/127.0.0.1
|
||||
address=/virashux.net/127.0.0.1
|
||||
address=/vixirtab.com/127.0.0.1
|
||||
address=/vknrfwwxhxaxupqp.pro/127.0.0.1
|
||||
address=/voluumtracker.com/127.0.0.1
|
||||
address=/wacucmiy.net/127.0.0.1
|
||||
address=/wadsotch.com/127.0.0.1
|
||||
address=/wagoapse.com/127.0.0.1
|
||||
address=/wahamtou.net/127.0.0.1
|
||||
address=/waitingpresen.info/127.0.0.1
|
||||
address=/warsalsintrol.site/127.0.0.1
|
||||
address=/watchingssui.info/127.0.0.1
|
||||
address=/waugeboa.net/127.0.0.1
|
||||
address=/weegebul.net/127.0.0.1
|
||||
address=/weethery.com/127.0.0.1
|
||||
address=/whadaupo.net/127.0.0.1
|
||||
address=/whaustou.net/127.0.0.1
|
||||
address=/wheessoo.com/127.0.0.1
|
||||
address=/whoshood.com/127.0.0.1
|
||||
address=/wimsocou.com/127.0.0.1
|
||||
address=/wizwarsum.site/127.0.0.1
|
||||
address=/woogoust.com/127.0.0.1
|
||||
address=/woovooza.net/127.0.0.1
|
||||
address=/wrongerababan.info/127.0.0.1
|
||||
address=/xmlppcbuzz.com/127.0.0.1
|
||||
address=/yeprimlax.club/127.0.0.1
|
||||
address=/yinsterkneeline.info/127.0.0.1
|
||||
address=/z501lpfg9x8v.com/127.0.0.1
|
||||
address=/zaivikuk.com/127.0.0.1
|
||||
address=/zaugroaw.net/127.0.0.1
|
||||
address=/zaushegi.net/127.0.0.1
|
||||
address=/zrnedsainsteady.info/127.0.0.1
|
||||
address=/zudrurta.com/127.0.0.1
|
||||
address=/46.165.197.153/127.0.0.1
|
||||
address=/46.165.197.231/127.0.0.1
|
||||
@ -5146,6 +5443,7 @@ address=/burporess.pro/127.0.0.1
|
||||
address=/clearadnetwork.com/127.0.0.1
|
||||
address=/clkrev.com/127.0.0.1
|
||||
address=/shillivee.pro/127.0.0.1
|
||||
address=/steepto.com/127.0.0.1
|
||||
address=/adminpromotion.com/127.0.0.1
|
||||
address=/adsalesforce.com/127.0.0.1
|
||||
address=/amazingfunnvideos.com/127.0.0.1
|
||||
@ -5424,7 +5722,6 @@ address=/adbidgo.com/127.0.0.1
|
||||
address=/adplexo.com/127.0.0.1
|
||||
address=/adservi.com/127.0.0.1
|
||||
address=/aebadu.com/127.0.0.1
|
||||
address=/aoredi.com/127.0.0.1
|
||||
address=/bebadu.com/127.0.0.1
|
||||
address=/billionpops.com/127.0.0.1
|
||||
address=/cebadu.com/127.0.0.1
|
||||
@ -5441,7 +5738,6 @@ address=/doublelimpup.com/127.0.0.1
|
||||
address=/dsp.wtf/127.0.0.1
|
||||
address=/earnbigo.com/127.0.0.1
|
||||
address=/eoredi.com/127.0.0.1
|
||||
address=/fabrkrup.com/127.0.0.1
|
||||
address=/fastpopclick.com/127.0.0.1
|
||||
address=/fastpopunder.com/127.0.0.1
|
||||
address=/febadu.com/127.0.0.1
|
||||
@ -5604,7 +5900,6 @@ address=/d1ebha2k07asm5.cloudfront.net/127.0.0.1
|
||||
address=/d1grtyyel8f1mh.cloudfront.net/127.0.0.1
|
||||
address=/d1i9kr6k34lyp.cloudfront.net/127.0.0.1
|
||||
address=/d1il9t8pu4dsoj.cloudfront.net/127.0.0.1
|
||||
address=/d1ks8roequxbwa.cloudfront.net/127.0.0.1
|
||||
address=/d1mbgf0ge24riu.cloudfront.net/127.0.0.1
|
||||
address=/d1n3tk65esqc4k.cloudfront.net/127.0.0.1
|
||||
address=/d1nmxiiewlx627.cloudfront.net/127.0.0.1
|
||||
@ -5681,7 +5976,6 @@ address=/dasfdasfasdf.no-ip.info/127.0.0.1
|
||||
address=/data.neuroxmedia.com/127.0.0.1
|
||||
address=/dbam.dashbida.com/127.0.0.1
|
||||
address=/dbcdqp72lzmvj.cloudfront.net/127.0.0.1
|
||||
address=/dc5k8fg5ioc8s.cloudfront.net/127.0.0.1
|
||||
address=/ddvfoj5yrl2oi.cloudfront.net/127.0.0.1
|
||||
address=/deacon.ghfkk.com/127.0.0.1
|
||||
address=/delivery-dev.thebloggernetwork.com/127.0.0.1
|
||||
@ -5689,7 +5983,6 @@ address=/delivery.thebloggernetwork.com/127.0.0.1
|
||||
address=/dew9ckzjyt2gn.cloudfront.net/127.0.0.1
|
||||
address=/display.digitalriver.com/127.0.0.1
|
||||
address=/djr4k68f8n55o.cloudfront.net/127.0.0.1
|
||||
address=/djv99sxoqpv11.cloudfront.net/127.0.0.1
|
||||
address=/djz9es32qen64.cloudfront.net/127.0.0.1
|
||||
address=/dm0acvguygm9h.cloudfront.net/127.0.0.1
|
||||
address=/dmkdtkad2jyb9.cloudfront.net/127.0.0.1
|
||||
@ -5804,9 +6097,32 @@ address=/yeas.yahoo.co.jp/127.0.0.1
|
||||
address=/yield-op-idsync.live.streamtheworld.com/127.0.0.1
|
||||
address=/zapads.zapak.com/127.0.0.1
|
||||
address=/d141wsrw9m4as6.cloudfront.net/127.0.0.1
|
||||
address=/d1bxkgbbc428vi.cloudfront.net/127.0.0.1
|
||||
address=/d1ilwohzbe4ao6.cloudfront.net/127.0.0.1
|
||||
address=/d1jnvfp2m6fzvq.cloudfront.net/127.0.0.1
|
||||
address=/d1ks8roequxbwa.cloudfront.net/127.0.0.1
|
||||
address=/d1n1ppeppre6d4.cloudfront.net/127.0.0.1
|
||||
address=/d1nkvehlw5hmj4.cloudfront.net/127.0.0.1
|
||||
address=/d1rjzrtsxlzawf.cloudfront.net/127.0.0.1
|
||||
address=/d1w24oanovvxvg.cloudfront.net/127.0.0.1
|
||||
address=/d22z575k8abudv.cloudfront.net/127.0.0.1
|
||||
address=/d2e30rravz97d4.cloudfront.net/127.0.0.1
|
||||
address=/d2glav2919q4cw.cloudfront.net/127.0.0.1
|
||||
address=/d31mxuhvwrofft.cloudfront.net/127.0.0.1
|
||||
address=/d347nuc6bd1dvs.cloudfront.net/127.0.0.1
|
||||
address=/d3a49eam5ump99.cloudfront.net/127.0.0.1
|
||||
address=/d3b2hhehkqd158.cloudfront.net/127.0.0.1
|
||||
address=/d3hj4iyx6t1waz.cloudfront.net/127.0.0.1
|
||||
address=/d3kpkrgd3aj4o7.cloudfront.net/127.0.0.1
|
||||
address=/d3qu0b872n4q3x.cloudfront.net/127.0.0.1
|
||||
address=/d3t3lxfqz2g5hs.cloudfront.net/127.0.0.1
|
||||
address=/d3vnm1492fpnm2.cloudfront.net/127.0.0.1
|
||||
address=/dc5k8fg5ioc8s.cloudfront.net/127.0.0.1
|
||||
address=/dn3uy6cx65ujf.cloudfront.net/127.0.0.1
|
||||
address=/dpd9yiocsyy6p.cloudfront.net/127.0.0.1
|
||||
address=/du01z5hhojprz.cloudfront.net/127.0.0.1
|
||||
address=/dw9uc6c6b8nwx.cloudfront.net/127.0.0.1
|
||||
address=/dxkkb5tytkivf.cloudfront.net/127.0.0.1
|
||||
address=/iadc.qwapi.com/127.0.0.1
|
||||
address=/d3jgr4uve1d188.cloudfront.net/127.0.0.1
|
||||
address=/d3ujids68p6xmq.cloudfront.net/127.0.0.1
|
||||
@ -5880,6 +6196,7 @@ address=/djv99sxoqpv11.cloudfront.net/127.0.0.1
|
||||
address=/dkm6b5q0h53z4.cloudfront.net/127.0.0.1
|
||||
address=/fontent.streamp1ay.me/127.0.0.1
|
||||
address=/fun.wormania.io/127.0.0.1
|
||||
address=/fun1.arcadeprehacks.com/127.0.0.1
|
||||
address=/gen.etherscan.io/127.0.0.1
|
||||
address=/hawk.pcgamer.com/127.0.0.1
|
||||
address=/imgcache.sythe.org/127.0.0.1
|
||||
@ -5898,6 +6215,8 @@ address=/web.tmearn.com/127.0.0.1
|
||||
address=/ww2.gestyy.com/127.0.0.1
|
||||
address=/x.castanet.net/127.0.0.1
|
||||
address=/gontent.steamplay.me/127.0.0.1
|
||||
address=/hontent.steamplay.me/127.0.0.1
|
||||
address=/vontent.powvideo.net/127.0.0.1
|
||||
address=/wontent.powvideo.net/127.0.0.1
|
||||
address=/yontent.powvideo.net/127.0.0.1
|
||||
address=/meta.streamcloud.eu/127.0.0.1
|
||||
|
||||
@ -676,7 +676,9 @@ start_redir() {
|
||||
done
|
||||
echo "$(date "+%Y-%m-%d %H:%M:%S") Shadowsocks/ShadowsocksR $threads Threads Started!" >> /tmp/ssrplus.log
|
||||
elif [ "$stype" == "trojan" ] ;then
|
||||
for i in $(seq 1 $threads); do
|
||||
$sscmd --config /var/etc/trojan-ssr-retcp.json >/dev/null 2>&1 &
|
||||
done
|
||||
echo "$(date "+%Y-%m-%d %H:%M:%S") $($sscmd --version 2>&1 | head -1) Started!" >> /tmp/ssrplus.log
|
||||
|
||||
elif [ "$stype" == "v2ray" ] ;then
|
||||
|
||||
@ -30,6 +30,7 @@ local trojan = {
|
||||
tcp = {
|
||||
no_delay = true,
|
||||
keep_alive = true,
|
||||
reuse_port = true,
|
||||
fast_open = (server.fast_open == "1") and true or false,
|
||||
fast_open_qlen = 20
|
||||
}
|
||||
|
||||
@ -0,0 +1,704 @@
|
||||
@import url("flag-icon.min.css");
|
||||
|
||||
/*!
|
||||
Pure v1.0.1
|
||||
Copyright 2013 Yahoo!
|
||||
Licensed under the BSD License.
|
||||
https://github.com/pure-css/pure/blob/master/LICENSE.md
|
||||
*/
|
||||
|
||||
|
||||
.pure-g {
|
||||
letter-spacing: -.31em;
|
||||
text-rendering: optimizespeed;
|
||||
font-family: FreeSans, Arimo, "Droid Sans", Helvetica, Arial, sans-serif;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-flow: row wrap;
|
||||
-ms-flex-flow: row wrap;
|
||||
flex-flow: row wrap;
|
||||
-webkit-align-content: flex-start;
|
||||
-ms-flex-line-pack: start;
|
||||
align-content: flex-start
|
||||
}
|
||||
|
||||
@media all and (-ms-high-contrast:none),
|
||||
(-ms-high-contrast:active) {
|
||||
table .pure-g {
|
||||
display: block
|
||||
}
|
||||
}
|
||||
|
||||
.opera-only :-o-prefocus,
|
||||
.pure-g {
|
||||
word-spacing: -.43em
|
||||
}
|
||||
|
||||
.pure-u {
|
||||
display: inline-block;
|
||||
zoom: 1;
|
||||
letter-spacing: normal;
|
||||
word-spacing: normal;
|
||||
vertical-align: top;
|
||||
text-rendering: auto
|
||||
}
|
||||
|
||||
.pure-g [class*=pure-u] {
|
||||
font-family: sans-serif
|
||||
}
|
||||
|
||||
.pure-u-1,
|
||||
.pure-u-1-1,
|
||||
.pure-u-1-12,
|
||||
.pure-u-1-2,
|
||||
.pure-u-1-24,
|
||||
.pure-u-1-3,
|
||||
.pure-u-1-4,
|
||||
.pure-u-1-5,
|
||||
.pure-u-1-6,
|
||||
.pure-u-1-8,
|
||||
.pure-u-10-24,
|
||||
.pure-u-11-12,
|
||||
.pure-u-11-24,
|
||||
.pure-u-12-24,
|
||||
.pure-u-13-24,
|
||||
.pure-u-14-24,
|
||||
.pure-u-15-24,
|
||||
.pure-u-16-24,
|
||||
.pure-u-17-24,
|
||||
.pure-u-18-24,
|
||||
.pure-u-19-24,
|
||||
.pure-u-2-24,
|
||||
.pure-u-2-3,
|
||||
.pure-u-2-5,
|
||||
.pure-u-20-24,
|
||||
.pure-u-21-24,
|
||||
.pure-u-22-24,
|
||||
.pure-u-23-24,
|
||||
.pure-u-24-24,
|
||||
.pure-u-3-24,
|
||||
.pure-u-3-4,
|
||||
.pure-u-3-5,
|
||||
.pure-u-3-8,
|
||||
.pure-u-4-24,
|
||||
.pure-u-4-5,
|
||||
.pure-u-5-12,
|
||||
.pure-u-5-24,
|
||||
.pure-u-5-5,
|
||||
.pure-u-5-6,
|
||||
.pure-u-5-8,
|
||||
.pure-u-6-24,
|
||||
.pure-u-7-12,
|
||||
.pure-u-7-24,
|
||||
.pure-u-7-8,
|
||||
.pure-u-8-24,
|
||||
.pure-u-9-24 {
|
||||
display: inline-block;
|
||||
zoom: 1;
|
||||
letter-spacing: normal;
|
||||
word-spacing: normal;
|
||||
vertical-align: top;
|
||||
text-rendering: auto
|
||||
}
|
||||
|
||||
.pure-u-1-24 {
|
||||
width: 4.1667%
|
||||
}
|
||||
|
||||
.pure-u-1-12,
|
||||
.pure-u-2-24 {
|
||||
width: 8.3333%
|
||||
}
|
||||
|
||||
.pure-u-1-8,
|
||||
.pure-u-3-24 {
|
||||
width: 12.5%
|
||||
}
|
||||
|
||||
.pure-u-1-6,
|
||||
.pure-u-4-24 {
|
||||
width: 16.6667%
|
||||
}
|
||||
|
||||
.pure-u-1-5 {
|
||||
width: 20%
|
||||
}
|
||||
|
||||
.pure-u-5-24 {
|
||||
width: 20.8333%
|
||||
}
|
||||
|
||||
.pure-u-1-4,
|
||||
.pure-u-6-24 {
|
||||
width: 25%
|
||||
}
|
||||
|
||||
.pure-u-7-24 {
|
||||
width: 29.1667%
|
||||
}
|
||||
|
||||
.pure-u-1-3,
|
||||
.pure-u-8-24 {
|
||||
width: 33.3333%
|
||||
}
|
||||
|
||||
.pure-u-3-8,
|
||||
.pure-u-9-24 {
|
||||
width: 37.5%
|
||||
}
|
||||
|
||||
.pure-u-2-5 {
|
||||
width: 40%
|
||||
}
|
||||
|
||||
.pure-u-10-24,
|
||||
.pure-u-5-12 {
|
||||
width: 41.6667%
|
||||
}
|
||||
|
||||
.pure-u-11-24 {
|
||||
width: 45.8333%
|
||||
}
|
||||
|
||||
.pure-u-1-2,
|
||||
.pure-u-12-24 {
|
||||
width: 50%
|
||||
}
|
||||
|
||||
.pure-u-13-24 {
|
||||
width: 54.1667%
|
||||
}
|
||||
|
||||
.pure-u-14-24,
|
||||
.pure-u-7-12 {
|
||||
width: 58.3333%
|
||||
}
|
||||
|
||||
.pure-u-3-5 {
|
||||
width: 60%
|
||||
}
|
||||
|
||||
.pure-u-15-24,
|
||||
.pure-u-5-8 {
|
||||
width: 62.5%
|
||||
}
|
||||
|
||||
.pure-u-16-24,
|
||||
.pure-u-2-3 {
|
||||
width: 66.6667%
|
||||
}
|
||||
|
||||
.pure-u-17-24 {
|
||||
width: 70.8333%
|
||||
}
|
||||
|
||||
.pure-u-18-24,
|
||||
.pure-u-3-4 {
|
||||
width: 75%
|
||||
}
|
||||
|
||||
.pure-u-19-24 {
|
||||
width: 79.1667%
|
||||
}
|
||||
|
||||
.pure-u-4-5 {
|
||||
width: 80%
|
||||
}
|
||||
|
||||
.pure-u-20-24,
|
||||
.pure-u-5-6 {
|
||||
width: 83.3333%
|
||||
}
|
||||
|
||||
.pure-u-21-24,
|
||||
.pure-u-7-8 {
|
||||
width: 87.5%
|
||||
}
|
||||
|
||||
.pure-u-11-12,
|
||||
.pure-u-22-24 {
|
||||
width: 91.6667%
|
||||
}
|
||||
|
||||
.pure-u-23-24 {
|
||||
width: 95.8333%
|
||||
}
|
||||
|
||||
.pure-u-1,
|
||||
.pure-u-1-1,
|
||||
.pure-u-24-24,
|
||||
.pure-u-5-5 {
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.status {
|
||||
margin: 1rem -0.5rem 1rem -0.5rem;
|
||||
}
|
||||
|
||||
.block {
|
||||
margin: 0.5rem 0.5rem;
|
||||
padding: 0;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
line-height: 1;
|
||||
font-family: inherit;
|
||||
min-width: inherit;
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
border: 1px solid rgba(0, 0, 0, .05);
|
||||
border-radius: .500rem;
|
||||
background-color: #f4;
|
||||
box-shadow: 0 0 2rem 0 rgba(136, 152, 170, .15);
|
||||
}
|
||||
|
||||
.img-con {
|
||||
margin: 1rem;
|
||||
|
||||
}
|
||||
.pure-img{
|
||||
max-height: 100%;
|
||||
width: auto;
|
||||
}
|
||||
.green {
|
||||
font-size: 1.25rem;
|
||||
color: #2dce89;
|
||||
}
|
||||
|
||||
.red {
|
||||
font-size: 1.25rem;
|
||||
color: #fb6340;
|
||||
}
|
||||
|
||||
.sk-text-success {
|
||||
color: #2dce89;
|
||||
}
|
||||
|
||||
.sk-text-error {
|
||||
color: #fb6340;
|
||||
}
|
||||
|
||||
.gap {
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
|
||||
.block img {
|
||||
width: 48px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.pure-u-5-8 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
|
||||
.block h4 {
|
||||
font-size: .8125rem;
|
||||
font-weight: 600;
|
||||
margin: 1rem;
|
||||
color: #8898aa !important;
|
||||
line-height: 1.8em;
|
||||
}
|
||||
.p-in5{
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.cbi-section-table-row {
|
||||
position: relative;
|
||||
background: #f4;
|
||||
margin: 10px;
|
||||
padding: 8px 15px 10px 70px;
|
||||
box-shadow: 0 0 1rem 0 rgba(136,152,170,.75);
|
||||
border-radius: .5rem;
|
||||
border: 0;
|
||||
color: #fff;
|
||||
text-align: left;
|
||||
line-height: 1.7em;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
transition: all 0.3s;
|
||||
|
||||
}
|
||||
.cbi-section-table-row:hover{
|
||||
background: #fff;
|
||||
|
||||
}
|
||||
|
||||
.cbi-section-table-row.fast{
|
||||
background: #5e72e4;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.cbi-section-table-row.fast .ssr-button{
|
||||
color: #fff;
|
||||
}
|
||||
.cbi-section-table-row.fast .ssr-button:hover,
|
||||
.cbi-section-table-row.fast .ssr-button:focus,
|
||||
.cbi-section-table-row.fast .ssr-button:active {
|
||||
color: #fff;
|
||||
outline: 0;
|
||||
text-decoration: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.host_con.fast {
|
||||
color: #6f9a37;
|
||||
}
|
||||
|
||||
.host_con.nopass {
|
||||
color: #dc3545;
|
||||
}
|
||||
|
||||
.host_con.middle {
|
||||
color: #fbc658;
|
||||
}
|
||||
|
||||
.host_con.slow {
|
||||
color: #fb6340;
|
||||
}
|
||||
|
||||
.loadings {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(255, 255, 255, 0.7);
|
||||
border-radius: .5rem;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 10;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 30px;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
.loadings.hide {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.loadings span {
|
||||
animation: anim-rotate 2s infinite linear;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
|
||||
.alias{
|
||||
margin-bottom:1px;
|
||||
}
|
||||
.incon:nth-child(2) {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 61px;
|
||||
height: 100%;
|
||||
border: 0;
|
||||
border-right: #d1dfed 1px solid;
|
||||
background-position: top;
|
||||
|
||||
}
|
||||
.incon:nth-child(2) .tp{
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
height: 25%;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
line-height: 15px;
|
||||
color: #fff;
|
||||
background: #525f7f;
|
||||
}
|
||||
|
||||
.incon:nth-child(3) {
|
||||
padding-left: 0px;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.incon:nth-child(5),
|
||||
.incon:nth-child(6) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.cbi-section-table-cell {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.ssr-button {
|
||||
background: none;
|
||||
color: #525f7f;
|
||||
padding: 0 0 0 6px;
|
||||
height: auto;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
.ssr-button:hover,
|
||||
.ssr-button:focus,
|
||||
.ssr-button:active {
|
||||
color: #525f7f;
|
||||
outline: 0;
|
||||
text-decoration: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.cbi-section h3 {
|
||||
margin-left: 10px;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
|
||||
.cbi-button-check {
|
||||
color: #fff !important;
|
||||
background-color: #336633 !important;
|
||||
border-color: #2e6da4 !important;
|
||||
font-size:12px;
|
||||
padding:0.5rem 0.8rem;
|
||||
float:right;
|
||||
margin-right:10px;
|
||||
margin-top:0rem;
|
||||
|
||||
}
|
||||
|
||||
.cbi-section-table-cell {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.host_con {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 50px;
|
||||
text-align: left;
|
||||
height: 22px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.host_ok {
|
||||
color: #fff;
|
||||
background: #2dce89;
|
||||
padding: 0.1rem 0.5rem;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
|
||||
.host_error {
|
||||
color: #fff;
|
||||
background: #f5365c;
|
||||
padding: 0.1rem 0.5rem;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
footer.mobile-hide{
|
||||
display: block;
|
||||
}
|
||||
.cbi-button-add{
|
||||
position:fixed;
|
||||
padding: 0.3rem 0.5rem;
|
||||
z-index:1000;
|
||||
width:70px !important;
|
||||
height:70px;
|
||||
bottom:90px;
|
||||
right:55px;
|
||||
font-size:20px;
|
||||
border-radius:50%;
|
||||
display:block;
|
||||
background-color: #336633!important;
|
||||
border-color: #CC6699 !important;
|
||||
box-shadow: 0 0 1rem 0 rgba(136,152,170,.75);
|
||||
}
|
||||
|
||||
|
||||
.mar-10 {margin-left: 50px; margin-right: 10px;}
|
||||
|
||||
.status-bar{
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
box-shadow: 0 0 2rem 0 rgba(136,152,170,.3);
|
||||
color: #525f7f;
|
||||
background: #fff;
|
||||
z-index: 5;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.status-bar .inner{
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
.status-bar .inner .flag{
|
||||
height: 3em;
|
||||
display: block;
|
||||
float: left;
|
||||
margin-right: 1em;
|
||||
}
|
||||
.status-bar .icon-con{
|
||||
height: 3em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@media screen and (max-width: 1900px) {
|
||||
.pure-u-1-5 {
|
||||
width: 25%;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1600px) {
|
||||
.pure-u-1-5 {
|
||||
width: 33.33333333%;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1200px) {
|
||||
.pure-u-1-5 {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.status .pure-u-1-5 {
|
||||
width: 33.333%;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 700px) {
|
||||
.pure-u-1-4 {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.pure-u-1-2 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.pure-u-1-5 {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.status .pure-u-1-5 {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.cbi-button-add {
|
||||
position: fixed;
|
||||
padding: 0.3rem 0.5rem;
|
||||
z-index: 1000;
|
||||
width: 50px !important;
|
||||
height: 50px;
|
||||
bottom: 90px;
|
||||
right: 5px;
|
||||
font-size: 16px;
|
||||
border-radius: 50%;
|
||||
display: block;
|
||||
background-color: #fb6340!important;
|
||||
border-color: #fb6340 !important;
|
||||
box-shadow: 0 0 1rem 0 rgba(136, 152, 170, .75);
|
||||
}
|
||||
}
|
||||
|
||||
.modals-bg {
|
||||
position: fixed;
|
||||
z-index: 999;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
display: none;
|
||||
}
|
||||
|
||||
.modals {
|
||||
position: fixed;
|
||||
z-index: 100;
|
||||
width: 60%;
|
||||
height: 500px;
|
||||
background: #172b4d;
|
||||
left: 20%;
|
||||
top: 15%;
|
||||
color: #fff;
|
||||
border-radius: 10px;
|
||||
padding: 20px;
|
||||
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
/* Firefox */
|
||||
-webkit-box-sizing: border-box;
|
||||
/* Safari */
|
||||
}
|
||||
|
||||
.modals h2 {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.modals h3 {
|
||||
font-size: 14px;
|
||||
color: #f5365c !important;
|
||||
background: transparent;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#log_content3 {
|
||||
border: 0;
|
||||
width: 99%;
|
||||
height: calc(100% - 4rem);
|
||||
font-family: 'Lucida Console';
|
||||
font-size: 11px;
|
||||
background: transparent;
|
||||
color: #FFFFFF;
|
||||
outline: none;
|
||||
padding-left: 3px;
|
||||
padding-right: 22px;
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1024px) {
|
||||
.modals {
|
||||
position: fixed;
|
||||
z-index: 100;
|
||||
width: 80%;
|
||||
height: 500px;
|
||||
background: #172b4d;
|
||||
left: 10%;
|
||||
top: 15%;
|
||||
color: #fff;
|
||||
border-radius: 10px;
|
||||
padding: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 700px) {
|
||||
.modals-bg {
|
||||
position: fixed;
|
||||
z-index: 100000;
|
||||
|
||||
}
|
||||
|
||||
.modals {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.status-bar .pure-u-1-2{
|
||||
width: 50%;
|
||||
}
|
||||
.status-bar .inner .flag{
|
||||
height: 3em;
|
||||
display: block;
|
||||
float: left;
|
||||
margin-right: 1em;
|
||||
}
|
||||
.status-bar .icon-con{
|
||||
height: 2.5em;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user