diff --git a/start.sh b/start.sh index bc465fe..4c40167 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 - 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" +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" 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..."