diff --git a/start.sh b/start.sh index 09a75af..6f78518 100644 --- a/start.sh +++ b/start.sh @@ -44,19 +44,19 @@ for country in $COUNTRIES; do #https://www.ipdeny.com/ipblocks/data/countries/${ tmp_file="${ZONE_DIR}/${country}.zone.tmp" target_file="${ZONE_DIR}/${country}.zone" -if curl -sSf -o "$tmp_file" "$url"; then - grep -Eo '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+(/[0-9]+)?$' "$tmp_file" > "$target_file" - rm "$tmp_file" - if [ ! -s "$target_file" ]; then - echo "[$country] Lista filtrada vazia, ignorando atualização." - rm "$target_file" + if curl -sSf -o "$tmp_file" "$url"; then + if [ -f "$target_file" ] && cmp -s "$tmp_file" "$target_file"; then + echo "[$country] Arquivo inalterado." + rm "$tmp_file" + else + echo "[$country] Atualizando IPs." + mv "$tmp_file" "$target_file" + fi + else + echo "[$country] Falha no download. Mantendo antigo (se existir)." + [ -f "$tmp_file" ] && rm "$tmp_file" continue fi -else - echo "[$country] Falha no download. Mantendo antigo (se existir)." - [ -f "$tmp_file" ] && rm "$tmp_file" - continue -fi if ipset list "$country" &>/dev/null; then echo "[$country] Limpando ipset antigo..."