commit 703d5af5116cff7dd21d3e1c0efc1ca303464675 Author: chunzhi Date: Sat Jan 13 16:26:14 2024 +0800 添加 probe.sh diff --git a/probe.sh b/probe.sh new file mode 100644 index 0000000..82cb0e7 --- /dev/null +++ b/probe.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +mkdir -p result +mkdir -p use + +# 计算文件的行数 +total_lines=$(cat result/*.csv | wc -l) + +# 遍历result文件夹中的所有csv文件 +for file in result/*.csv +do + # 从csv文件中读取每一行,并显示进度 + cat "$file" | pv -l -s $total_lines | while IFS= read -r line + do + # 将每一行分割成多个字段 + IFS=',' read -ra fields <<< "$line" + # 遍历每个字段 + for field in "${fields[@]}" + do + # 去除字段两边的空格 + field=$(echo $field | xargs) + # 检查字段是否为有效的IPv4地址 + if [[ $field =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + # 使用curl命令测试ip地址 + status_code=$(curl --resolve cloudflare.com:443:$field --insecure https://cloudflare.com/cdn-cgi/trace -o /dev/null -w '%{http_code}' -s) + # 如果状态码为200,将ip地址保存到use.txt文件中 + if [ "$status_code" -eq 200 ] + then + echo "IP $field is available" + echo $field >> use/use.txt + else + echo "IP $field is not available" + fi + else + # 如果字段不是有效的IPv4地址,跳出循环 + break + fi + done + done +done