mirror of https://gitlab.com/rwkgyg/CFwarp.git
218 lines
4.9 KiB
Bash
218 lines
4.9 KiB
Bash
#!/bin/bash
|
||
|
||
case "$(uname -m)" in
|
||
x86_64 | x64 | amd64 )
|
||
cpu=amd64
|
||
;;
|
||
i386 | i686 )
|
||
cpu=386
|
||
;;
|
||
armv8 | armv8l | arm64 | aarch64 )
|
||
cpu=arm64
|
||
;;
|
||
armv7l )
|
||
cpu=arm
|
||
;;
|
||
* )
|
||
echo "当前架构为$(uname -m),暂不支持"
|
||
exit
|
||
;;
|
||
esac
|
||
|
||
cfwarpreg(){
|
||
curl -sSL https://gitlab.com/rwkgyg/CFwarp/-/raw/main/point/acwarp.sh -o acwarp.sh && chmod +x acwarp.sh && ./acwarp.sh
|
||
}
|
||
|
||
warpendipv4v6(){
|
||
echo "1.IPV4优选对端IP"
|
||
echo "2.IPV6优选对端IP"
|
||
echo "0.退出"
|
||
read -p "请选择: " menu
|
||
if [ "$menu" == "1" ];then
|
||
cfwarpIP && endipv4 && endipresult
|
||
elif [ "$menu" == "2" ];then
|
||
cfwarpIP && endipv6 && endipresult
|
||
else
|
||
exit
|
||
fi
|
||
}
|
||
|
||
cfwarpIP(){
|
||
|
||
if [[ ! -f "warpendpoint" ]]; then
|
||
echo "下载warp优选程序"
|
||
if [[ -n $cpu ]]; then
|
||
curl -L -o warpendpoint -# --retry 2 https://gitlab.com/rwkgyg/CFwarp/raw/main/point/$cpu
|
||
fi
|
||
fi
|
||
}
|
||
|
||
endipv4(){
|
||
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
|
||
}
|
||
|
||
endipv6(){
|
||
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
|
||
}
|
||
|
||
endipresult(){
|
||
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
|
||
}
|
||
|
||
echo "------------------------------------------------------"
|
||
echo "甬哥Github项目 :github.com/yonggekkk"
|
||
echo "甬哥blogger博客 :ygkkk.blogspot.com"
|
||
echo "甬哥YouTube频道 :www.youtube.com/@ygkkk"
|
||
echo "脚本支持WARP优选IP、WARP配置文件生成,感谢CF网友开发"
|
||
echo "------------------------------------------------------"
|
||
echo
|
||
echo "1.WARP-V4V6优选对端IP"
|
||
echo "2.注册生成WARP-Wireguard配置文件、二维码"
|
||
echo "0.退出"
|
||
read -p "请选择: " menu
|
||
if [ "$menu" == "1" ];then
|
||
warpendipv4v6
|
||
elif [ "$menu" == "2" ];then
|
||
cfwarpreg
|
||
else
|
||
exit
|
||
fi
|