mirror of https://gitlab.com/rwkgyg/CFwarp.git
199 lines
4.2 KiB
Bash
199 lines
4.2 KiB
Bash
#!/bin/bash
|
||
|
||
warpcheck(){
|
||
case "$(uname -m)" in
|
||
x86_64 | x64 | amd64 )
|
||
cpu=amd64
|
||
;;
|
||
i386 | i686 )
|
||
cpu=386
|
||
;;
|
||
armv8 | arm64 | aarch64 )
|
||
cpu=arm64
|
||
;;
|
||
armv7l )
|
||
cpu=arm
|
||
;;
|
||
* )
|
||
echo "当前架构为$(uname -m),暂不支持"
|
||
exit
|
||
;;
|
||
esac
|
||
if [[ -n $cpu ]]; then
|
||
curl -L -o warpendpoint -# --retry 2 https://proxy.freecdn.ml?url=https://gitlab.com/rwkgyg/CFwarp/raw/main/point/$cpu
|
||
fi
|
||
}
|
||
|
||
cfwarp(){
|
||
if [ $menu == 1 ]
|
||
then
|
||
n=0
|
||
iplist=100
|
||
while true
|
||
do
|
||
temp[$n]=$(echo 162.159.192.$(($RANDOM%256)))
|
||
n=$[$n+1]
|
||
if [ $n -ge $iplist ]
|
||
then
|
||
break
|
||
fi
|
||
temp[$n]=$(echo 162.159.193.$(($RANDOM%256)))
|
||
n=$[$n+1]
|
||
if [ $n -ge $iplist ]
|
||
then
|
||
break
|
||
fi
|
||
temp[$n]=$(echo 162.159.195.$(($RANDOM%256)))
|
||
n=$[$n+1]
|
||
if [ $n -ge $iplist ]
|
||
then
|
||
break
|
||
fi
|
||
temp[$n]=$(echo 188.114.96.$(($RANDOM%256)))
|
||
n=$[$n+1]
|
||
if [ $n -ge $iplist ]
|
||
then
|
||
break
|
||
fi
|
||
temp[$n]=$(echo 188.114.97.$(($RANDOM%256)))
|
||
n=$[$n+1]
|
||
if [ $n -ge $iplist ]
|
||
then
|
||
break
|
||
fi
|
||
temp[$n]=$(echo 188.114.98.$(($RANDOM%256)))
|
||
n=$[$n+1]
|
||
if [ $n -ge $iplist ]
|
||
then
|
||
break
|
||
fi
|
||
temp[$n]=$(echo 188.114.99.$(($RANDOM%256)))
|
||
n=$[$n+1]
|
||
if [ $n -ge $iplist ]
|
||
then
|
||
break
|
||
fi
|
||
done
|
||
while true
|
||
do
|
||
if [ $(echo ${temp[@]} | sed -e 's/ /\n/g' | sort -u | wc -l) -ge $iplist ]
|
||
then
|
||
break
|
||
else
|
||
temp[$n]=$(echo 162.159.192.$(($RANDOM%256)))
|
||
n=$[$n+1]
|
||
fi
|
||
if [ $(echo ${temp[@]} | sed -e 's/ /\n/g' | sort -u | wc -l) -ge $iplist ]
|
||
then
|
||
break
|
||
else
|
||
temp[$n]=$(echo 162.159.193.$(($RANDOM%256)))
|
||
n=$[$n+1]
|
||
fi
|
||
if [ $(echo ${temp[@]} | sed -e 's/ /\n/g' | sort -u | wc -l) -ge $iplist ]
|
||
then
|
||
break
|
||
else
|
||
temp[$n]=$(echo 162.159.195.$(($RANDOM%256)))
|
||
n=$[$n+1]
|
||
fi
|
||
if [ $(echo ${temp[@]} | sed -e 's/ /\n/g' | sort -u | wc -l) -ge $iplist ]
|
||
then
|
||
break
|
||
else
|
||
temp[$n]=$(echo 188.114.96.$(($RANDOM%256)))
|
||
n=$[$n+1]
|
||
fi
|
||
if [ $(echo ${temp[@]} | sed -e 's/ /\n/g' | sort -u | wc -l) -ge $iplist ]
|
||
then
|
||
break
|
||
else
|
||
temp[$n]=$(echo 188.114.97.$(($RANDOM%256)))
|
||
n=$[$n+1]
|
||
fi
|
||
if [ $(echo ${temp[@]} | sed -e 's/ /\n/g' | sort -u | wc -l) -ge $iplist ]
|
||
then
|
||
break
|
||
else
|
||
temp[$n]=$(echo 188.114.98.$(($RANDOM%256)))
|
||
n=$[$n+1]
|
||
fi
|
||
if [ $(echo ${temp[@]} | sed -e 's/ /\n/g' | sort -u | wc -l) -ge $iplist ]
|
||
then
|
||
break
|
||
else
|
||
temp[$n]=$(echo 188.114.99.$(($RANDOM%256)))
|
||
n=$[$n+1]
|
||
fi
|
||
done
|
||
else
|
||
n=0
|
||
iplist=100
|
||
while true
|
||
do
|
||
temp[$n]=$(echo [2606:4700:d0::$(printf '%x\n' $(($RANDOM*2+$RANDOM%2))):$(printf '%x\n' $(($RANDOM*2+$RANDOM%2))):$(printf '%x\n' $(($RANDOM*2+$RANDOM%2))):$(printf '%x\n' $(($RANDOM*2+$RANDOM%2)))])
|
||
n=$[$n+1]
|
||
if [ $n -ge $iplist ]
|
||
then
|
||
break
|
||
fi
|
||
temp[$n]=$(echo [2606:4700:d1::$(printf '%x\n' $(($RANDOM*2+$RANDOM%2))):$(printf '%x\n' $(($RANDOM*2+$RANDOM%2))):$(printf '%x\n' $(($RANDOM*2+$RANDOM%2))):$(printf '%x\n' $(($RANDOM*2+$RANDOM%2)))])
|
||
n=$[$n+1]
|
||
if [ $n -ge $iplist ]
|
||
then
|
||
break
|
||
fi
|
||
done
|
||
while true
|
||
do
|
||
if [ $(echo ${temp[@]} | sed -e 's/ /\n/g' | sort -u | wc -l) -ge $iplist ]
|
||
then
|
||
break
|
||
else
|
||
temp[$n]=$(echo [2606:4700:d0::$(printf '%x\n' $(($RANDOM*2+$RANDOM%2))):$(printf '%x\n' $(($RANDOM*2+$RANDOM%2))):$(printf '%x\n' $(($RANDOM*2+$RANDOM%2))):$(printf '%x\n' $(($RANDOM*2+$RANDOM%2)))])
|
||
n=$[$n+1]
|
||
fi
|
||
if [ $(echo ${temp[@]} | sed -e 's/ /\n/g' | sort -u | wc -l) -ge $iplist ]
|
||
then
|
||
break
|
||
else
|
||
temp[$n]=$(echo [2606:4700:d1::$(printf '%x\n' $(($RANDOM*2+$RANDOM%2))):$(printf '%x\n' $(($RANDOM*2+$RANDOM%2))):$(printf '%x\n' $(($RANDOM*2+$RANDOM%2))):$(printf '%x\n' $(($RANDOM*2+$RANDOM%2)))])
|
||
n=$[$n+1]
|
||
fi
|
||
done
|
||
fi
|
||
echo ${temp[@]} | sed -e 's/ /\n/g' | sort -u > ip.txt
|
||
ulimit -n 102400
|
||
chmod +x warpendpoint
|
||
./warpendpoint
|
||
clear
|
||
cat result.csv | awk -F, '$3!="timeout ms" {print} ' | sort -t, -nk2 -nk3 | uniq | head -11 | awk -F, '{print "端点 "$1" 丢包率 "$2" 平均延迟 "$3}'
|
||
rm -rf ip.txt
|
||
exit
|
||
}
|
||
|
||
list(){
|
||
clear
|
||
echo "WARP-Endpoint优选IP,感谢CF网友开发"
|
||
echo "1.WARP-V4优选"
|
||
echo "2.WARP-V6优选"
|
||
echo -e "0.退出\n"
|
||
read -p "请选择菜单(默认1): " menu
|
||
if [ -z "$menu" ] || [ $menu == "1" ];then
|
||
menu=1
|
||
cfwarp
|
||
elif [ $menu == "2" ];then
|
||
menu=2
|
||
cfwarp
|
||
else
|
||
exit
|
||
fi
|
||
}
|
||
|
||
if [ ! -f "warpendpoint" ]; then
|
||
echo "下载warp优选程序"
|
||
warpcheck && list
|
||
else
|
||
list
|
||
fi
|