#!/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