#!/bin/bash warpcheck(){ 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 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 warpendpoint 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