This commit is contained in:
+4
-4
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user