silmace

shell批量检测 ip段质量
大概可以用来检测cf的ip质量,然后自选ip 雾)
扫描右侧二维码阅读全文
15
2020/03

shell批量检测 ip段质量

大概可以用来检测cf的ip质量,然后自选ip 雾)

先来看看脚本成果
截图

教你如何使用?

当然你得要有个linux环境
1.复制,修改定义部分的内容
2.保存为chickip.sh
3.然后终端输入

chmod +x chickip.sh
./chickip.sh
#最后合格的ip会保存到chickip.log

cloudflare ip段

我整理了一个 list 如何挑选 link
ip线路/位置需要你自己去 ipip Besttrace 测试
移动的话,我用 1.0.0.0/24 这个段还是非常不错的

脚本内容

# /bin/bash
# chickip.sh

# 定义ip段,最多测到第三个字节!!!第四个字节不用写,两个定义一样就只测第四个字节
ip_start=172.65.240
ip_ending=172.65.255
# 定义并发的进程数,也就是每次ping的ip数
thread_num=10
# 定义每个ip ping的次数
time2=20
# 定义最大延迟
time1=60
# 定义最大丢包率
lost=30

###################################
# 新建一个FIFO类型的变量
myfifo="myfifo"
mkfifo ${myfifo}
# 将FD6指向FIFO类型
exec 6<>${myfifo}
rm -f ${myfifo}
# 在FD6中放置了$thread_num个占位信息
for ((i=0;i<=${thread_num};i++))
do
{
    echo 
}
done >&6

last_ping() {
    for ((ip_sub=1;ip_sub<=255;ip_sub++));
    do
        read -u6
        {   
           # 每个IP ping $time2次并获取每个IP的丢包率,延迟
            ping=`ping -c $time2 $ip_start.$ip_sub|grep -E 'loss|avg'`
            lose=`echo $ping|grep loss|awk '{print $6}'|awk -F "%" '{print $1}'|gawk -F . '{print $1}'`
            # 丢包率大于$lost丢弃
            if [ $lose -ge $lost ];then
                    echo "丢弃 $ip_start.$ip_sub 丢包率$lose"
            else
                    # 获取每个IP的延迟,丢弃延迟大于$time1的,延迟小于$time1的保存到chickip.log文件中
                    num=`echo $ping|grep avg | gawk -F / '{print $5}'|gawk -F . '{print $1}'`
                    if [ $num -ge $time1 ];then
                        echo "丢弃 $ip_start.$ip_sub 延迟 $num"
                    else
                        echo "保存 $ip_start.$ip_sub 延迟 $num 丢包率 $lose"
                        echo "$ip_start.$ip_sub 延迟:$num 丢包率 $lose" >> chickip.log
                    fi
            fi
            echo >&6 # 当进程结束以后,再向FD6中加上一个回车符,即补上了read -u6减去的那个
        } &
    done
}

if [ $ip_start = $ip_ending ];then
    last_ping
else
    for ((third=${ip_start##*.};third<=${ip_ending##*.};third++))
    do
    {
         ip_2="${ip_start%.*}.$third"
         rm -f $ip_start
         ip_start=$ip_2
         last_ping
    }
    done
fi

# 等待所有线程结束,删掉wait会后台运行
wait

# 关闭fd6管道
exec 6>&-
Last modification:May 17th, 2020 at 03:11 am

2 comments

  1. CloudFlare手动自选IP - NMB HOST

    [...]@Silmace大佬提供了一个批量测试IP延迟和丢包率的脚本(点击前往),在此表示感谢(o゜▽゜)o☆[...]

  2. [...]Linux .sh:点击下载最后扫出来的结果差不多如图,有了地区,跑路由可以用Besttrace,对照我上面写的网络情况你可以简单做一个取舍。至于你想自己测试延时和丢包率也是可以的,毕竟各地网络条件不一样,你可以自己测试最适合你的,这些方面就不再赘述了。@Silmace大佬提供了一个批量测试IP延迟和丢包率的脚本(点击前往),在此表示感谢(o゜▽゜)o☆Python脚本这个测试脚本是大哥@CZM写[...]

Make a comment