This commit is contained in:
sushen339
2025-11-18 04:22:06 +08:00
parent 5588be0660
commit 8238a95799
+4 -4
View File
@@ -173,10 +173,10 @@ ban_ip() {
OLD_IP="$line" OLD_IP="$line"
OLD_COUNTRY=$(curl -s --max-time 2 "https://ipinfo.io/$OLD_IP/country" 2>/dev/null | tr -d '\n\r ') 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 if [ -n "$OLD_COUNTRY" ] && [ ${#OLD_COUNTRY} -eq 2 ]; then
# 转义IP地址中的特殊字符(.)用于sed正则表达式 # 使用awk替换整行,避免sed正则表达式问题
ESCAPED_IP=$(echo "$OLD_IP" | sed 's/\./\\./g') awk -v ip="$OLD_IP" -v country="$OLD_COUNTRY" \
# 在临时文件中替换该行 'BEGIN{FS=OFS="|"} $1==ip && NF==1 {print ip,country; next} {print}' \
sed -i "s|^$ESCAPED_IP\$|$OLD_IP|$OLD_COUNTRY|" "$TEMP_UPDATE" "$TEMP_UPDATE" > "${TEMP_UPDATE}.new" && mv "${TEMP_UPDATE}.new" "$TEMP_UPDATE"
UPDATE_COUNT=$((UPDATE_COUNT + 1)) UPDATE_COUNT=$((UPDATE_COUNT + 1))
log "[补充地区] IP=$OLD_IP 国家=$(get_country_name "$OLD_COUNTRY")" log "[补充地区] IP=$OLD_IP 国家=$(get_country_name "$OLD_COUNTRY")"
fi fi