#!/bin/bash
set -e

# 创建临时集合（原子性更新，避免更新期间断网）
ipset create china_ip_tmp hash:net maxelem 65536 2>/dev/null || ipset flush china_ip_tmp

# 高速批量导入 CIDR 列表
TMP_FILE=$(mktemp)
echo "create china_ip_tmp hash:net maxelem 65536 -exist" > "$TMP_FILE"
curl -sSL https://www.ipdeny.com/ipblocks/data/aggregated/cn-aggregated.zone | awk '{print "add china_ip_tmp " $1}' >> "$TMP_FILE"

ipset restore < "$TMP_FILE"
rm -f "$TMP_FILE"

# 确保目标集合存在并进行原子替换
ipset create china_ip hash:net maxelem 65536 2>/dev/null || true
ipset swap china_ip_tmp china_ip
ipset destroy china_ip_tmp 2>/dev/null || true

echo "china_ip 集合更新完成，当前有效 IP 段数量: $(ipset list china_ip | grep -c -E '^[0-9]')"
