@ -309,11 +309,11 @@ red(){ echo -e "\033[31m\033[01m$1\033[0m"; }
green( ) { echo -e " \033[32m\033[01m $1 \033[0m " ; }
yellow( ) { echo -e " \033[33m\033[01m $1 \033[0m " ; }
reading( ) { read -rp " $( green " $1 " ) " " $2 " ; }
translate( ) { [ [ -n " $1 " ] ] && curl -sm8 " http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i= $1 " | cut -d \" -f18 2>/dev/null; }
translate( ) { [ [ -n " $1 " ] ] && curl -k sm8 " http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i= $1 " | cut -d \" -f18 2>/dev/null; }
# 脚本当天及累计运行次数统计
statistics_of_run-times( ) {
COUNT = $( curl -sm1 "https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2Ffscarmen%2Fwarp%2Fmenu.sh&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=&edge_flat=true" 2>& 1) &&
COUNT = $( curl -k sm1 "https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2Ffscarmen%2Fwarp%2Fmenu.sh&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=&edge_flat=true" 2>& 1) &&
TODAY = $( expr " $COUNT " : '.*\s\([0-9]\{1,\}\)\s/.*' ) && TOTAL = $( expr " $COUNT " : '.*/\s\([0-9]\{1,\}\)\s.*' )
}
@ -392,7 +392,7 @@ ip4_info(){
WAN4 = $( expr " $IP4 " : '.*ip\":\"\([^"]*\).*' )
COUNTRY4 = $( expr " $IP4 " : '.*country\":\"\([^"]*\).*' )
ASNORG4 = $( expr " $IP4 " : '.*asn_org\":\"\([^"]*\).*' )
TRACE4 = $( curl -s4m8 https://www.cloudflare.com/cdn-cgi/trace | grep warp | sed "s/warp=//g" )
TRACE4 = $( curl -k s4m8 https://www.cloudflare.com/cdn-cgi/trace | grep warp | sed "s/warp=//g" )
if [ [ $TRACE4 = plus ] ] ; then
grep -sq 'Device name' /etc/wireguard/info.log && PLUS4 = '+' || PLUS4 = ' Teams'
fi
@ -406,7 +406,7 @@ ip6_info(){
WAN6 = $( expr " $IP6 " : '.*ip\":\"\([^"]*\).*' )
COUNTRY6 = $( expr " $IP6 " : '.*country\":\"\([^"]*\).*' )
ASNORG6 = $( expr " $IP6 " : '.*asn_org\":\"\([^"]*\).*' )
TRACE6 = $( curl -s6m8 https://www.cloudflare.com/cdn-cgi/trace | grep warp | sed "s/warp=//g" )
TRACE6 = $( curl -k s6m8 https://www.cloudflare.com/cdn-cgi/trace | grep warp | sed "s/warp=//g" )
if [ [ $TRACE6 = plus ] ] ; then
grep -sq 'Device name' /etc/wireguard/info.log && PLUS6 = '+' || PLUS6 = ' Teams'
fi
@ -483,7 +483,7 @@ stack_priority(){
# 更换 Netflix IP 时确认期望区域
input_region( ) {
[ [ -n $NF ] ] && REGION = $( tr '[:lower:]' '[:upper:]' <<< $( curl --user-agent " ${ UA_Browser } " -$NF -fs --max-time 10 --write-out %{ redirect_url} --output /dev/null "https://www.netflix.com/title/80018499" | sed 's/.*com\/\([^-/]\{1,\}\).*/\1/g' ) ) ||
REGION = $( tr '[:lower:]' '[:upper:]' <<< $( curl --user-agent " ${ UA_Browser } " -s4m7 --socks5 " $PROXYSOCKS5 " -fs --max-time 10 --write-out %{ redirect_url} --output /dev/null "https://www.netflix.com/title/80018499" | sed 's/.*com\/\([^-/]\{1,\}\).*/\1/g' ) )
REGION = $( tr '[:lower:]' '[:upper:]' <<< $( curl --user-agent " ${ UA_Browser } " -k s4m7 --socks5 " $PROXYSOCKS5 " -fs --max-time 10 --write-out %{ redirect_url} --output /dev/null "https://www.netflix.com/title/80018499" | sed 's/.*com\/\([^-/]\{1,\}\).*/\1/g' ) )
REGION = ${ REGION :- 'US' }
reading " $( eval echo " ${ T [ ${ L } 56 ] } " ) " EXPECT
until [ [ -z $EXPECT || $EXPECT = [ Yy] || $EXPECT = ~ ^[ A-Za-z] { 2} $ ] ] ; do
@ -536,9 +536,9 @@ change_socks5(){
ip_now = $( date +%s) ; RUNTIME = $(( ip_now - ip_start)) ; DAY = $(( RUNTIME / 86400 )) ; HOUR = $(( ( RUNTIME % 86400 ) / 3600 )) ; MIN = $(( ( RUNTIME % 86400 % 3600 ) / 60 )) ; SEC = $(( RUNTIME % 86400 % 3600 % 60 ))
proxy_info
WAN = $PROXYIP && ASNORG = $PROXYASNORG && NF = 4 && COUNTRY = $PROXYCOUNTRY
RESULT = $( curl --user-agent " ${ UA_Browser } " -s4m7 --socks5 " $PROXYSOCKS5 " -fsL --write-out %{ http_code} --output /dev/null --max-time 10 " https://www.netflix.com/title/ $RESULT_TITLE " 2>& 1)
RESULT = $( curl --user-agent " ${ UA_Browser } " -k s4m7 --socks5 " $PROXYSOCKS5 " -fsL --write-out %{ http_code} --output /dev/null --max-time 10 " https://www.netflix.com/title/ $RESULT_TITLE " 2>& 1)
if [ [ $RESULT = 200 ] ] ; then
REGION = $( tr '[:lower:]' '[:upper:]' <<< $( curl --user-agent " ${ UA_Browser } " -s4m7 --socks5 " $PROXYSOCKS5 " -fs --max-time 10 --write-out %{ redirect_url} --output /dev/null " https://www.netflix.com/title/ $REGION_TITLE " | sed 's/.*com\/\([^-/]\{1,\}\).*/\1/g' ) )
REGION = $( tr '[:lower:]' '[:upper:]' <<< $( curl --user-agent " ${ UA_Browser } " -k s4m7 --socks5 " $PROXYSOCKS5 " -fs --max-time 10 --write-out %{ redirect_url} --output /dev/null " https://www.netflix.com/title/ $REGION_TITLE " | sed 's/.*com\/\([^-/]\{1,\}\).*/\1/g' ) )
REGION = ${ REGION :- 'US' }
echo " $REGION " | grep -qi " $EXPECT " && green " $( eval echo " ${ T [ ${ L } 125 ] } " ) " && i = 0 && sleep 1h || socks5_restart
else socks5_restart
@ -654,7 +654,7 @@ net(){
until [ [ $TRACE4 $TRACE6 = ~ on| plus ] ]
do ( ( i++ ) ) || true
yellow " $( eval echo " ${ T [ ${ L } 12 ] } " ) "
${ SYSTEMCTL_RESTART [int] } >/dev/null 2>& 1
${ SYSTEMCTL_RESTART [int] } >/dev/null 2>& 1
ss -nltp | grep dnsmasq >/dev/null 2>& 1 && systemctl restart dnsmasq >/dev/null 2>& 1
ip4_info; ip6_info
if [ [ $i = " $j " ] ] ; then
@ -1234,14 +1234,14 @@ update(){
sed -i " 2s#.*# $( sed -ne 2p wgcf-profile.conf) #;3s#.*# $( sed -ne 3p wgcf-profile.conf) #;4s#.*# $( sed -ne 4p wgcf-profile.conf) # " wgcf.conf
wg-quick down wgcf >/dev/null 2>& 1
net
[ [ $( curl -s4 https://www.cloudflare.com/cdn-cgi/trace | grep warp | sed "s/warp=//g" ) = plus || $( curl -s6 https://www.cloudflare.com/cdn-cgi/trace | grep warp | sed "s/warp=//g" ) = plus ] ] &&
[ [ $( curl -k s4 https://www.cloudflare.com/cdn-cgi/trace | grep warp | sed "s/warp=//g" ) = plus || $( curl -s6 https://www.cloudflare.com/cdn-cgi/trace | grep warp | sed "s/warp=//g" ) = plus ] ] &&
green " ${ T [ ${ L } 62 ] } \n ${ T [ ${ L } 25 ] } : $( grep 'Device name' /etc/wireguard/info.log | awk '{ print $NF }' ) \n ${ T [ ${ L } 63 ] } : $( grep Quota /etc/wireguard/info.log | awk '{ print $(NF-1), $NF }' ) " ) || red " ${ T [ ${ L } 36 ] } " ; ;
2 ) input_url
[ [ $CONFIRM = [ Yy] ] ] && ( echo " $TEAMS " > /etc/wireguard/info.log 2>& 1
teams_change
wg-quick down wgcf >/dev/null 2>& 1; net
[ [ $( curl -s4 https://www.cloudflare.com/cdn-cgi/trace | grep warp | sed "s/warp=//g" ) = plus || $( curl -s6 https://www.cloudflare.com/cdn-cgi/trace | grep warp | sed "s/warp=//g" ) = plus ] ] && green " ${ T [ ${ L } 128 ] } " ) ; ;
[ [ $( curl -k s4 https://www.cloudflare.com/cdn-cgi/trace | grep warp | sed "s/warp=//g" ) = plus || $( curl -s6 https://www.cloudflare.com/cdn-cgi/trace | grep warp | sed "s/warp=//g" ) = plus ] ] && green " ${ T [ ${ L } 128 ] } " ) ; ;
* ) red " ${ T [ ${ L } 51 ] } [1-2] " ; sleep 1; update
esac