Update version from 1.68 to 1.69
This commit is contained in:
1 parent
9e17239a2c
commit
876b78a68a
1 file changed
+169
-44
+169
-44
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Version: 1.68
|
# Version: 1.69
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
GREEN="\033[1;32m"; CYAN="\033[1;36m"; YELLOW="\033[1;33m"; MAGENTA="\033[1;35m"; BLUE="\033[0;34m"; NC="\033[0m"; DGRAY="\033[38;5;244m"
|
GREEN="\033[1;32m"; CYAN="\033[1;36m"; YELLOW="\033[1;33m"; MAGENTA="\033[1;35m"; BLUE="\033[0;34m"; NC="\033[0m"; DGRAY="\033[38;5;244m"
|
||||||
@@ -70,7 +70,7 @@ cat > '/opt/zapret-manager-luci/backend.sh' << 'ZM_INSTALLER_EOF'
|
|||||||
umask 022
|
umask 022
|
||||||
|
|
||||||
CONF="/etc/config/zapret"
|
CONF="/etc/config/zapret"
|
||||||
ZM_VERSION="1.68"
|
ZM_VERSION="1.69"
|
||||||
ZM_SCRIPT_URL="https://raw.githubusercontent.com/StressOzz/Zapret-Manager/refs/heads/main/ZapretManager_LuCI.sh"
|
ZM_SCRIPT_URL="https://raw.githubusercontent.com/StressOzz/Zapret-Manager/refs/heads/main/ZapretManager_LuCI.sh"
|
||||||
GH_RAW="https://raw.githubusercontent.com"
|
GH_RAW="https://raw.githubusercontent.com"
|
||||||
GH_MAIN="https://github.com"
|
GH_MAIN="https://github.com"
|
||||||
@@ -6669,13 +6669,16 @@ _st_srs_url() { # НАБОР -> ссылка: из catalog.idx, из скача
|
|||||||
}
|
}
|
||||||
|
|
||||||
_st_srs_get() { # НАБОР — набор sing-box (.srs) или текстовый список каталога (.lst: домены и подсети вперемешку)
|
_st_srs_get() { # НАБОР — набор sing-box (.srs) или текстовый список каталога (.lst: домены и подсети вперемешку)
|
||||||
|
# Набор .srs хранится как есть ($ST_DIR/lists/НАБОР.srs): движок читает его сам (srs_files) —
|
||||||
|
# с сужением по протоколу и портам у каждой подсети. В списки (dom/pfx/meta) он раскладывается,
|
||||||
|
# только если движок наборы напрямую не принял (ST_SRS_NATIVE=0).
|
||||||
local set="$1" d="$ST_DIR/lists" f fmt x
|
local set="$1" d="$ST_DIR/lists" f fmt x
|
||||||
mkdir -p "$d"
|
mkdir -p "$d"
|
||||||
[ -f "$ST_RUN/srs.$set.done" ] && return 0
|
[ -f "$ST_RUN/srs.$set.done" ] && return 0
|
||||||
fmt="$(awk -F'|' -v k="$set" '$1 == k { print $2; exit }' "$ST_CAT_IDX" 2>/dev/null)"
|
fmt="$(awk -F'|' -v k="$set" '$1 == k { print $2; exit }' "$ST_CAT_IDX" 2>/dev/null)"
|
||||||
f="$ST_RUN/$set.src"
|
f="$ST_RUN/$set.src"
|
||||||
_st_fetch "$(_st_srs_url "$set")" "$f" || return 1
|
|
||||||
if [ "$fmt" = lst ]; then
|
if [ "$fmt" = lst ]; then
|
||||||
|
_st_fetch "$(_st_srs_url "$set")" "$f" || return 1
|
||||||
tr -d '\r' < "$f" | sed 's/[[:space:]]*#.*$//; s/^[[:space:]]*//; s/[[:space:]]*$//' | tr 'A-Z' 'a-z' > "$f.n"
|
tr -d '\r' < "$f" | sed 's/[[:space:]]*#.*$//; s/^[[:space:]]*//; s/[[:space:]]*$//' | tr 'A-Z' 'a-z' > "$f.n"
|
||||||
grep -E '^[0-9]{1,3}(\.[0-9]{1,3}){3}(/[0-9]{1,2})?$' "$f.n" | awk '!s[$0]++' > "$d/$set.pfx.tmp"
|
grep -E '^[0-9]{1,3}(\.[0-9]{1,3}){3}(/[0-9]{1,2})?$' "$f.n" | awk '!s[$0]++' > "$d/$set.pfx.tmp"
|
||||||
sed 's/^domain://; s/^full://; s/^suffix://; s/^\*\.//; s/^\.//' "$f.n" |
|
sed 's/^domain://; s/^full://; s/^suffix://; s/^\*\.//; s/^\.//' "$f.n" |
|
||||||
@@ -6684,23 +6687,52 @@ _st_srs_get() { # НАБОР — набор sing-box (.srs) или тексто
|
|||||||
rm -f "$f.n"
|
rm -f "$f.n"
|
||||||
[ -s "$d/$set.dom.tmp" ] || [ -s "$d/$set.pfx.tmp" ] || { rm -f "$f" "$d/$set".*.tmp; return 1; }
|
[ -s "$d/$set.dom.tmp" ] || [ -s "$d/$set.pfx.tmp" ] || { rm -f "$f" "$d/$set".*.tmp; return 1; }
|
||||||
else
|
else
|
||||||
steer srs-read "$f" --out "$d/$set.dom.tmp" --prefixes-out "$d/$set.pfx.tmp" --meta-out "$d/$set.meta.tmp" >/dev/null 2>&1 || {
|
# Скачиваем один раз за применение; не скачалось — берём прошлую копию набора, а не пакет
|
||||||
rm -f "$f" "$d/$set".*.tmp; return 1; }
|
if [ ! -f "$ST_RUN/dl.$set" ]; then
|
||||||
|
if _st_fetch "$(_st_srs_url "$set")" "$f" && [ "$(head -c 3 "$f")" = SRS ]; then
|
||||||
|
mv -f "$f" "$d/$set.srs"
|
||||||
|
touch "$ST_RUN/dl.$set"
|
||||||
|
else
|
||||||
|
rm -f "$f"
|
||||||
|
[ -s "$d/$set.srs" ] || return 1
|
||||||
|
_rb_warn "Набор $set не скачался — беру прошлую копию" >&2
|
||||||
|
touch "$ST_RUN/dl.$set"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
[ -s "$d/$set.srs" ] || return 1
|
||||||
|
if [ "${ST_SRS_NATIVE:-1}" = 1 ]; then touch "$ST_RUN/srs.$set.done"; return 0; fi
|
||||||
|
steer srs-read "$d/$set.srs" --out "$d/$set.dom.tmp" --prefixes-out "$d/$set.pfx.tmp" --meta-out "$d/$set.meta.tmp" >/dev/null 2>&1 || {
|
||||||
|
rm -f "$d/$set".*.tmp; return 1; }
|
||||||
fi
|
fi
|
||||||
for x in dom pfx meta; do touch "$d/$set.$x.tmp"; mv "$d/$set.$x.tmp" "$d/$set.$x"; done
|
for x in dom pfx meta; do touch "$d/$set.$x.tmp"; mv "$d/$set.$x.tmp" "$d/$set.$x"; done
|
||||||
rm -f "$f"
|
rm -f "$f"
|
||||||
touch "$ST_RUN/srs.$set.done"
|
touch "$ST_RUN/srs.$set.done"
|
||||||
}
|
}
|
||||||
|
|
||||||
_st_chname() {
|
_st_chname() { # ID ИМЯ [СУФФИКС] — имя канала Steer: не длиннее 31 байта (иначе движок отвергает спеку)
|
||||||
local n="$2$3"
|
# Кириллица — 2 байта на букву: « (адреса)» сам по себе 15 байт, поэтому при нехватке места
|
||||||
[ "$(printf '%s' "$n" | wc -c)" -le 31 ] || n="$1$3"
|
# переходим на ID с коротким латинским суффиксом, а длинный ID режем с хвостиком-хешем (имена не совпадут)
|
||||||
[ "$(printf '%s' "$n" | wc -c)" -le 31 ] || n="$(printf '%s' "$1" | cut -c1-20)$3"
|
local n="$2$3" s b
|
||||||
|
[ "$(printf '%s' "$n" | wc -c)" -le 31 ] && { esc "$n"; return; }
|
||||||
|
n="$1$3"
|
||||||
|
[ "$(printf '%s' "$n" | wc -c)" -le 31 ] && { esc "$n"; return; }
|
||||||
|
case "$3" in
|
||||||
|
'') s="" ;;
|
||||||
|
' (список)') s="-list" ;;
|
||||||
|
' (адреса)') s="-ip" ;;
|
||||||
|
' (голос)') s="-voice" ;;
|
||||||
|
*) s="-x" ;;
|
||||||
|
esac
|
||||||
|
n="$1$s"
|
||||||
|
if [ "$(printf '%s' "$n" | wc -c)" -gt 31 ]; then
|
||||||
|
b=$(( 31 - ${#s} - 5 ))
|
||||||
|
n="$(printf '%s' "$1" | head -c "$b")~$(printf '%s' "$1" | md5sum | cut -c1-4)$s"
|
||||||
|
fi
|
||||||
esc "$n"
|
esc "$n"
|
||||||
}
|
}
|
||||||
|
|
||||||
_st_svc_channels() { # ID
|
_st_svc_channels() { # ID
|
||||||
local id="$1" name sets set dom="" pfx="" narrow="" f proto ports ch="" sep="" took=""
|
local id="$1" name sets set dom="" pfx="" srs="" narrow="" f fmt proto ports ch="" sep="" took=""
|
||||||
name="$(_rb_svc_field "$id" 2)"
|
name="$(_rb_svc_field "$id" 2)"
|
||||||
sets="$(_rb_svc_field "$id" 8 | tr ',' ' ')"
|
sets="$(_rb_svc_field "$id" 8 | tr ',' ' ')"
|
||||||
for set in $sets; do
|
for set in $sets; do
|
||||||
@@ -6708,6 +6740,8 @@ _st_svc_channels() { # ID
|
|||||||
if _st_srs_get "$set"; then
|
if _st_srs_get "$set"; then
|
||||||
took="$took $set"
|
took="$took $set"
|
||||||
f="$ST_DIR/lists/$set"
|
f="$ST_DIR/lists/$set"
|
||||||
|
fmt="$(awk -F'|' -v k="$set" '$1 == k { print $2; exit }' "$ST_CAT_IDX" 2>/dev/null)"
|
||||||
|
if [ "$fmt" != lst ] && [ "${ST_SRS_NATIVE:-1}" = 1 ]; then srs="$srs${srs:+,}\"$f.srs\""; continue; fi
|
||||||
[ -s "$f.dom" ] && dom="$dom${dom:+,}\"$f.dom\""
|
[ -s "$f.dom" ] && dom="$dom${dom:+,}\"$f.dom\""
|
||||||
if [ -s "$f.pfx" ]; then
|
if [ -s "$f.pfx" ]; then
|
||||||
if [ -s "$f.meta" ]; then narrow="$narrow $set"; else pfx="$pfx${pfx:+,}\"$f.pfx\""; fi
|
if [ -s "$f.meta" ]; then narrow="$narrow $set"; else pfx="$pfx${pfx:+,}\"$f.pfx\""; fi
|
||||||
@@ -6723,10 +6757,13 @@ _st_svc_channels() { # ID
|
|||||||
if [ -z "$sets" ]; then
|
if [ -z "$sets" ]; then
|
||||||
dom="$(_st_json_list "$(_rb_svc_field "$id" 3 | tr ',' ' ')")"
|
dom="$(_st_json_list "$(_rb_svc_field "$id" 3 | tr ',' ' ')")"
|
||||||
pfx="$(_st_json_list "$(_rb_svc_field "$id" 4 | tr ',' ' ')")"
|
pfx="$(_st_json_list "$(_rb_svc_field "$id" 4 | tr ',' ' ')")"
|
||||||
narrow=""
|
narrow=""; srs=""
|
||||||
fi
|
fi
|
||||||
[ "$id" = custom ] && [ -s "$ST_USER_DIR/$id.lst" ] && dom="\"$ST_USER_DIR/$id.lst\""
|
[ "$id" = custom ] && [ -s "$ST_USER_DIR/$id.lst" ] && dom="\"$ST_USER_DIR/$id.lst\""
|
||||||
[ -n "$dom" ] && { ch="$ch$sep{\"name\":\"$(_st_chname "$id" "$name")\",\"out\":\"$ST_OUT\",\"match\":{\"domains_files\":[$dom]}}"; sep=","; }
|
# Набор .srs целиком одним каналом: у Discord домены идут в туннель полностью, а подсети —
|
||||||
|
# только UDP-голос (свои порты у подсетей Discord и у Cloudflare 104.16.0.0/12)
|
||||||
|
[ -n "$srs" ] && { ch="$ch$sep{\"name\":\"$(_st_chname "$id" "$name")\",\"out\":\"$ST_OUT\",\"match\":{\"srs_files\":[$srs]}}"; sep=","; }
|
||||||
|
[ -n "$dom" ] && { ch="$ch$sep{\"name\":\"$(_st_chname "$id" "$name" "$([ -n "$srs" ] && echo ' (список)')")\",\"out\":\"$ST_OUT\",\"match\":{\"domains_files\":[$dom]}}"; sep=","; }
|
||||||
[ -n "$pfx" ] && { ch="$ch$sep{\"name\":\"$(_st_chname "$id" "$name" " (адреса)")\",\"out\":\"$ST_OUT\",\"match\":{\"prefixes_files\":[$pfx]}}"; sep=","; }
|
[ -n "$pfx" ] && { ch="$ch$sep{\"name\":\"$(_st_chname "$id" "$name" " (адреса)")\",\"out\":\"$ST_OUT\",\"match\":{\"prefixes_files\":[$pfx]}}"; sep=","; }
|
||||||
for set in $narrow; do
|
for set in $narrow; do
|
||||||
f="$ST_DIR/lists/$set"
|
f="$ST_DIR/lists/$set"
|
||||||
@@ -6770,9 +6807,18 @@ _st_spec_build() { # ID... -> JSON в stdout
|
|||||||
}
|
}
|
||||||
|
|
||||||
_st_spec_apply() { # ID...
|
_st_spec_apply() { # ID...
|
||||||
local tmp="$ST_RUN/spec.json" out
|
local tmp="$ST_RUN/spec.json" out rc
|
||||||
|
ST_SRS_NATIVE=1
|
||||||
_st_spec_build "$@" > "$tmp" || { echo "ОШИБКА: для выбранных сервисов нет ни одного списка"; return 1; }
|
_st_spec_build "$@" > "$tmp" || { echo "ОШИБКА: для выбранных сервисов нет ни одного списка"; return 1; }
|
||||||
if ! out=$(steer apply --spec "$tmp" --dry-run 2>&1 >/dev/null); then
|
out=$(steer apply --spec "$tmp" --dry-run 2>&1 >/dev/null); rc=$?
|
||||||
|
if [ "$rc" != 0 ] && grep -q '"srs_files"' "$tmp"; then
|
||||||
|
# Старый движок не читает наборы .srs сам — раскладываем их в списки, как раньше
|
||||||
|
_rb_warn "Движок Steer не принял наборы .srs напрямую — раскладываем их в списки (обновите движок)"
|
||||||
|
ST_SRS_NATIVE=0
|
||||||
|
_st_spec_build "$@" > "$tmp" || { echo "ОШИБКА: для выбранных сервисов нет ни одного списка"; return 1; }
|
||||||
|
out=$(steer apply --spec "$tmp" --dry-run 2>&1 >/dev/null); rc=$?
|
||||||
|
fi
|
||||||
|
if [ "$rc" != 0 ]; then
|
||||||
echo "ОШИБКА: движок Steer отверг настройку"
|
echo "ОШИБКА: движок Steer отверг настройку"
|
||||||
printf '%s\n' "$out" | tail -n 5
|
printf '%s\n' "$out" | tail -n 5
|
||||||
return 1
|
return 1
|
||||||
@@ -6966,7 +7012,7 @@ _st_warp_resume() {
|
|||||||
|
|
||||||
_st_apply() { # [tunnel_ready] — туннель только что проверен, второй раз не поднимаем
|
_st_apply() { # [tunnel_ready] — туннель только что проверен, второй раз не поднимаем
|
||||||
local sel
|
local sel
|
||||||
rm -f "$ST_RUN/lists.json"
|
rm -f "$ST_RUN/lists.json" "$ST_RUN"/dl.*
|
||||||
_st_cat_refresh force >/dev/null 2>&1 || [ -f "$ST_CAT_OFF" ] || _rb_warn "Каталог списков не скачался — сервисы из каталога берём по прежнему списку"
|
_st_cat_refresh force >/dev/null 2>&1 || [ -f "$ST_CAT_OFF" ] || _rb_warn "Каталог списков не скачался — сервисы из каталога берём по прежнему списку"
|
||||||
sel="$(_st_sel | tr '\n' ' ')"
|
sel="$(_st_sel | tr '\n' ' ')"
|
||||||
if [ -z "$(echo $sel)" ]; then
|
if [ -z "$(echo $sel)" ]; then
|
||||||
@@ -11395,20 +11441,7 @@ return view.extend({
|
|||||||
var gTitle = m ? m[1] : g, gSub = m ? m[2] : '';
|
var gTitle = m ? m[1] : g, gSub = m ? m[2] : '';
|
||||||
var open = g in openGroups ? openGroups[g] : on > 0;
|
var open = g in openGroups ? openGroups[g] : on > 0;
|
||||||
var grid = E('div', { 'class': 'zm-grid zm-cat-grid' }, items.map(tile));
|
var grid = E('div', { 'class': 'zm-grid zm-cat-grid' }, items.map(tile));
|
||||||
function setAll(val) {
|
|
||||||
if (busy) { zm.toast('Дождитесь окончания текущей операции', 'warning'); return; }
|
|
||||||
pick = {};
|
|
||||||
for (var k in sel) if (sel[k]) pick[k] = true;
|
|
||||||
items.forEach(function(s) { if (val) pick[s.id] = true; else delete pick[s.id]; });
|
|
||||||
renderLists();
|
|
||||||
}
|
|
||||||
var body = E('div', { 'class': 'zm-cat-body', 'style': open ? '' : 'display:none' }, [
|
var body = E('div', { 'class': 'zm-cat-body', 'style': open ? '' : 'display:none' }, [
|
||||||
E('div', { 'class': 'zm-cat-tools' }, [
|
|
||||||
E('div', { 'class': 'zm-cat-links' }, [
|
|
||||||
E('button', { 'class': 'zm-linkbtn', 'type': 'button', 'click': function() { setAll(true); } }, 'Выбрать все'),
|
|
||||||
E('button', { 'class': 'zm-linkbtn', 'type': 'button', 'click': function() { setAll(false); }, 'disabled': on ? null : '' }, 'Снять все')
|
|
||||||
])
|
|
||||||
]),
|
|
||||||
grid
|
grid
|
||||||
]);
|
]);
|
||||||
var badge = E('span', { 'class': 'zm-badge zm-cat-count ' + (on ? 'zm-ok' : 'zm-off') }, on ? 'выбрано ' + on + ' из ' + items.length : items.length + ' ' + (function(n) { var a = n % 10, h = n % 100; return a === 1 && h !== 11 ? 'список' : (a >= 2 && a <= 4 && (h < 12 || h > 14) ? 'списка' : 'списков'); })(items.length));
|
var badge = E('span', { 'class': 'zm-badge zm-cat-count ' + (on ? 'zm-ok' : 'zm-off') }, on ? 'выбрано ' + on + ' из ' + items.length : items.length + ' ' + (function(n) { var a = n % 10, h = n % 100; return a === 1 && h !== 11 ? 'список' : (a >= 2 && a <= 4 && (h < 12 || h > 14) ? 'списка' : 'списков'); })(items.length));
|
||||||
@@ -12117,34 +12150,38 @@ ytimg.l.google.com
|
|||||||
yting.com
|
yting.com
|
||||||
ZM_INSTALLER_EOF
|
ZM_INSTALLER_EOF
|
||||||
cat > '/usr/share/zm-redbtn/lists/svc_telegram.lst' << 'ZM_INSTALLER_EOF'
|
cat > '/usr/share/zm-redbtn/lists/svc_telegram.lst' << 'ZM_INSTALLER_EOF'
|
||||||
t.me
|
|
||||||
telegram.me
|
|
||||||
telegram.org
|
|
||||||
telegram.dog
|
|
||||||
telegra.ph
|
|
||||||
telesco.pe
|
|
||||||
tdesktop.com
|
|
||||||
telegram-cdn.org
|
|
||||||
cdn-telegram.org
|
cdn-telegram.org
|
||||||
graph.org
|
|
||||||
tg.dev
|
|
||||||
fragment.com
|
|
||||||
comments.app
|
comments.app
|
||||||
contest.com
|
contest.com
|
||||||
tx.me
|
fragment.com
|
||||||
|
graph.org
|
||||||
|
quiz.directory
|
||||||
|
t.me
|
||||||
|
tdesktop.com
|
||||||
|
telega.one
|
||||||
|
telegra.ph
|
||||||
|
telegram-cdn.org
|
||||||
|
telegram.dog
|
||||||
|
telegram.me
|
||||||
|
telegram.org
|
||||||
telegram.space
|
telegram.space
|
||||||
|
telesco.pe
|
||||||
|
tg.dev
|
||||||
|
tx.me
|
||||||
|
usercontent.dev
|
||||||
|
ton.org
|
||||||
ZM_INSTALLER_EOF
|
ZM_INSTALLER_EOF
|
||||||
cat > '/usr/share/zm-redbtn/lists/telegram.lst' << 'ZM_INSTALLER_EOF'
|
cat > '/usr/share/zm-redbtn/lists/telegram.lst' << 'ZM_INSTALLER_EOF'
|
||||||
|
5.28.192.0/18
|
||||||
91.105.192.0/23
|
91.105.192.0/23
|
||||||
91.108.4.0/22
|
91.108.4.0/22
|
||||||
91.108.8.0/22
|
91.108.8.0/21
|
||||||
91.108.12.0/22
|
91.108.16.0/21
|
||||||
91.108.16.0/22
|
|
||||||
91.108.20.0/22
|
|
||||||
91.108.56.0/22
|
91.108.56.0/22
|
||||||
95.161.64.0/20
|
95.161.64.0/20
|
||||||
149.154.160.0/20
|
149.154.160.0/20
|
||||||
185.76.151.0/24
|
185.76.151.0/24
|
||||||
|
194.221.0.0/16
|
||||||
ZM_INSTALLER_EOF
|
ZM_INSTALLER_EOF
|
||||||
cat > '/usr/share/zm-redbtn/lists/svc_discord.lst' << 'ZM_INSTALLER_EOF'
|
cat > '/usr/share/zm-redbtn/lists/svc_discord.lst' << 'ZM_INSTALLER_EOF'
|
||||||
dis.gd
|
dis.gd
|
||||||
@@ -12718,17 +12755,61 @@ cat > '/usr/share/zm-redbtn/lists/meta.lst' << 'ZM_INSTALLER_EOF'
|
|||||||
69.171.224.0/19
|
69.171.224.0/19
|
||||||
74.119.76.0/22
|
74.119.76.0/22
|
||||||
102.132.96.0/20
|
102.132.96.0/20
|
||||||
|
102.132.112.0/24
|
||||||
|
102.132.115.0/24
|
||||||
|
102.132.116.0/23
|
||||||
|
102.132.119.0/24
|
||||||
|
102.132.120.0/23
|
||||||
|
102.132.123.0/24
|
||||||
|
102.132.125.0/24
|
||||||
|
102.132.126.0/24
|
||||||
|
102.221.188.0/22
|
||||||
103.4.96.0/22
|
103.4.96.0/22
|
||||||
129.134.0.0/17
|
129.134.0.0/17
|
||||||
|
129.134.130.0/24
|
||||||
|
129.134.132.0/24
|
||||||
|
129.134.135.0/24
|
||||||
|
129.134.136.0/22
|
||||||
|
129.134.140.0/24
|
||||||
|
129.134.143.0/24
|
||||||
|
129.134.144.0/24
|
||||||
|
129.134.148.0/23
|
||||||
|
129.134.150.0/24
|
||||||
|
129.134.154.0/23
|
||||||
|
129.134.156.0/22
|
||||||
|
129.134.160.0/22
|
||||||
|
129.134.164.0/23
|
||||||
|
129.134.168.0/21
|
||||||
|
129.134.176.0/20
|
||||||
|
129.134.194.0/23
|
||||||
|
129.134.196.0/23
|
||||||
157.240.0.0/17
|
157.240.0.0/17
|
||||||
|
157.240.128.0/23
|
||||||
|
157.240.131.0/24
|
||||||
|
157.240.132.0/24
|
||||||
|
157.240.134.0/24
|
||||||
|
157.240.136.0/23
|
||||||
|
157.240.139.0/24
|
||||||
|
157.240.140.0/24
|
||||||
|
157.240.156.0/22
|
||||||
|
157.240.169.0/24
|
||||||
|
157.240.170.0/24
|
||||||
|
157.240.175.0/24
|
||||||
|
157.240.177.0/24
|
||||||
|
157.240.179.0/24
|
||||||
|
157.240.181.0/24
|
||||||
|
157.240.182.0/23
|
||||||
|
157.240.184.0/21
|
||||||
157.240.192.0/18
|
157.240.192.0/18
|
||||||
163.70.128.0/17
|
163.70.128.0/17
|
||||||
163.77.132.0/23
|
163.77.132.0/23
|
||||||
163.77.136.0/23
|
163.77.136.0/23
|
||||||
|
163.114.128.0/20
|
||||||
173.252.64.0/18
|
173.252.64.0/18
|
||||||
179.60.192.0/22
|
179.60.192.0/22
|
||||||
185.60.216.0/22
|
185.60.216.0/22
|
||||||
185.89.216.0/22
|
185.89.216.0/22
|
||||||
|
199.201.64.0/22
|
||||||
204.15.20.0/22
|
204.15.20.0/22
|
||||||
ZM_INSTALLER_EOF
|
ZM_INSTALLER_EOF
|
||||||
cat > '/usr/share/zm-redbtn/lists/whatsapp.lst' << 'ZM_INSTALLER_EOF'
|
cat > '/usr/share/zm-redbtn/lists/whatsapp.lst' << 'ZM_INSTALLER_EOF'
|
||||||
@@ -12753,17 +12834,61 @@ cat > '/usr/share/zm-redbtn/lists/whatsapp.lst' << 'ZM_INSTALLER_EOF'
|
|||||||
69.171.224.0/19
|
69.171.224.0/19
|
||||||
74.119.76.0/22
|
74.119.76.0/22
|
||||||
102.132.96.0/20
|
102.132.96.0/20
|
||||||
|
102.132.112.0/24
|
||||||
|
102.132.115.0/24
|
||||||
|
102.132.116.0/23
|
||||||
|
102.132.119.0/24
|
||||||
|
102.132.120.0/23
|
||||||
|
102.132.123.0/24
|
||||||
|
102.132.125.0/24
|
||||||
|
102.132.126.0/24
|
||||||
|
102.221.188.0/22
|
||||||
103.4.96.0/22
|
103.4.96.0/22
|
||||||
129.134.0.0/17
|
129.134.0.0/17
|
||||||
|
129.134.130.0/24
|
||||||
|
129.134.132.0/24
|
||||||
|
129.134.135.0/24
|
||||||
|
129.134.136.0/22
|
||||||
|
129.134.140.0/24
|
||||||
|
129.134.143.0/24
|
||||||
|
129.134.144.0/24
|
||||||
|
129.134.148.0/23
|
||||||
|
129.134.150.0/24
|
||||||
|
129.134.154.0/23
|
||||||
|
129.134.156.0/22
|
||||||
|
129.134.160.0/22
|
||||||
|
129.134.164.0/23
|
||||||
|
129.134.168.0/21
|
||||||
|
129.134.176.0/20
|
||||||
|
129.134.194.0/23
|
||||||
|
129.134.196.0/23
|
||||||
157.240.0.0/17
|
157.240.0.0/17
|
||||||
|
157.240.128.0/23
|
||||||
|
157.240.131.0/24
|
||||||
|
157.240.132.0/24
|
||||||
|
157.240.134.0/24
|
||||||
|
157.240.136.0/23
|
||||||
|
157.240.139.0/24
|
||||||
|
157.240.140.0/24
|
||||||
|
157.240.156.0/22
|
||||||
|
157.240.169.0/24
|
||||||
|
157.240.170.0/24
|
||||||
|
157.240.175.0/24
|
||||||
|
157.240.177.0/24
|
||||||
|
157.240.179.0/24
|
||||||
|
157.240.181.0/24
|
||||||
|
157.240.182.0/23
|
||||||
|
157.240.184.0/21
|
||||||
157.240.192.0/18
|
157.240.192.0/18
|
||||||
163.70.128.0/17
|
163.70.128.0/17
|
||||||
163.77.132.0/23
|
163.77.132.0/23
|
||||||
163.77.136.0/23
|
163.77.136.0/23
|
||||||
|
163.114.128.0/20
|
||||||
173.252.64.0/18
|
173.252.64.0/18
|
||||||
179.60.192.0/22
|
179.60.192.0/22
|
||||||
185.60.216.0/22
|
185.60.216.0/22
|
||||||
185.89.216.0/22
|
185.89.216.0/22
|
||||||
|
199.201.64.0/22
|
||||||
204.15.20.0/22
|
204.15.20.0/22
|
||||||
ZM_INSTALLER_EOF
|
ZM_INSTALLER_EOF
|
||||||
cat > '/usr/share/zm-redbtn/lists/twitter_x.lst' << 'ZM_INSTALLER_EOF'
|
cat > '/usr/share/zm-redbtn/lists/twitter_x.lst' << 'ZM_INSTALLER_EOF'
|
||||||
|
|||||||
Reference in new issue
Block a user