#!/bin/bash #colors red='\033[0;31m' green='\033[0;32m' yellow='\033[0;33m' blue='\033[0;34m' purple='\033[0;35m' cyan='\033[0;36m' white='\033[0;37m' rest='\033[0m' case "$(uname -m)" in x86_64 | x64 | amd64 ) cpu=amd64 ;; i386 | i686 ) cpu=386 ;; armv8 | armv8l | arm64 | aarch64 ) cpu=arm64 ;; armv7l ) cpu=arm ;; * ) echo "The current architecture is $(uname -m), not supported" exit ;; esac cfwarpIP(){ if [[ ! -f "warpendpoint" ]]; then echo "Download warp preferred program" if [[ -n $cpu ]]; then curl -L -o warpendpoint -# --retry 2 https://raw.githubusercontent.com/Ptechgithub/warp/main/endip/$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 "Endpoint "$1" Packet Loss Rate "$2" Average Delay "$3}' Endip_v4=$(cat result.csv | grep -oE "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+" | head -n 1) Endip_v6=$(cat result.csv | grep -oE "\[.*\]:[0-9]+" | head -n 1) echo"" echo -e "${green}Results Saved in result.csv${rest}" echo"" echo -e "${yellow}------------------------------------------${rest}" if [ "$Endip_v4" ]; then echo -e "${yellow} Best IPv4:Port ---> ${purple}$Endip_v4 ${rest}" elif [ "$Endip_v6" ]; then echo -e "${yellow} Best IPv6:Port ---> ${purple}$Endip_v6 ${rest}" else echo -e "${red} No valid IP addresses found.${rest}" fi echo -e "${yellow}------------------------------------------${rest}" rm warpendpoint rm -rf ip.txt exit } clear echo "--------------------------------------------" echo "Github :github.com/ScienceWalnuts" echo -e "${yellow}By --> ScienceWalnuts * Github.com/ScienceWalnuts *${rest}" echo "--------------------------------------------" echo"" echo -e "${purple}1.${green}IPV4 preferred peer IP${rest}" echo -e "${purple}2.${green}IPV6 preferred peer IP${rest}" echo -e "${purple}0.${green}Exit${rest}" read -p "please choose: " menu if [ "$menu" == "1" ];then cfwarpIP && endipv4 && endipresult && Endip_v4 elif [ "$menu" == "2" ];then cfwarpIP && endipv6 && endipresult && Endip_v6 else exit fi