diff --git a/block-ip.sh b/block-ip.sh index 30cff1a..52a41ec 100644 --- a/block-ip.sh +++ b/block-ip.sh @@ -173,8 +173,10 @@ ban_ip() { OLD_IP="$line" OLD_COUNTRY=$(curl -s --max-time 2 "https://ipinfo.io/$OLD_IP/country" 2>/dev/null | tr -d '\n\r ') if [ -n "$OLD_COUNTRY" ] && [ ${#OLD_COUNTRY} -eq 2 ]; then + # 转义IP地址中的特殊字符(.)用于sed正则表达式 + ESCAPED_IP=$(echo "$OLD_IP" | sed 's/\./\\./g') # 在临时文件中替换该行 - sed -i "s|^$OLD_IP$|$OLD_IP|$OLD_COUNTRY|" "$TEMP_UPDATE" + sed -i "s|^$ESCAPED_IP\$|$OLD_IP|$OLD_COUNTRY|" "$TEMP_UPDATE" UPDATE_COUNT=$((UPDATE_COUNT + 1)) log "[补充地区] IP=$OLD_IP 国家=$(get_country_name "$OLD_COUNTRY")" fi