CFwarp/point/endip.sh

215 lines
4.9 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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(){
echo "下载warp优选程序"
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
}
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 warpendpoint
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