Open Eddie1874 opened 1 year ago
好建议,等后面空了就加上。
不好意思喵主子,我试着自己改了下下,好像是可以用了,你看是否可以参考下。 cf_ddns_cloudflare.sh 97行开始,把获取CF IP前置了下,加了一个判断,目前测试应该是可以用的。
while [[ ${x} -lt $num ]]; do CDNhostname=${hostname[$x]} listDnsApi="https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records?type=${recordType}&name=${CDNhostname}" createDnsApi="https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records"
proxy="false"
res=$(curl -s -X GET "$listDnsApi" -H "X-Auth-Email:$x_email" -H "X-Auth-Key:$api_key" -H "Content-Type:application/json") recordId=$(echo "$res" | jq -r ".result[0].id") recordIp=$(echo "$res" | jq -r ".result[0].content") echo "现有CF的IP---$recordIp"
ipSpeed=$(sed -n "$((x + 2)),1p" /root/cf_443/cf_ddns/result.csv | awk -F, '{print $6}')
if [ $ipSpeed = "0.00" ]; then ipAddr=$(echo "$res" | jq -r ".result[0].content") echo "速度为0时的IP---$ipAddr" else ipAddr=$(sed -n "$((x + 2)),1p" /root/cf_443/cf_ddns/result.csv | awk -F, '{print $1}') echo "速度不为0时的IP---$ipAddr" fi
对了,由于我本身环境有问题,我把文件路径全部用的绝对路径,如果要看的话需要注意下。 /root/cf_443/cf_ddns改为./cf_ddns
晚上在op上测试了一下,延迟下限设置了30ms,运行的时候,显示下限为0,不知道其他人遇到了没?改为默认的20ms,显示正常
喵主子好,我有个建议,望考虑下,谢谢。
现有CloudflareSpeedTest获取IP速度为0的时候依然会写入result.csv,从而导致你代码也会更新DDNS 建议在更新DDNS的时候加一个判断,速度为0的时候不更新CF,实际上这些IP也基本上不能用的。
result.csv 结果如图,在这个取值条件上加个判断应该就可以。 IP 地址,已发送,已接收,丢包率,平均延迟,下载速度 (MB/s) 112.74.93.147,4,4,0.00,18.42,0.00
修改cf_ddns_cloudflare.sh,在以下条件上加一个前置条件,判断速度为0则不取 while [[ ${x} -lt $num ]]; do CDNhostname=${hostname[$x]}
ipAddr=$(sed -n "$((x + 2)),1p" /root/cf_443/cf_ddns/result.csv | awk -F, '{print $1}')