#!/bin/bash # Название ipset IPSET_NAME="vpn_sites" # Файл со списком доменов DOMAINS_FILE="/etc/vpn_domains.txt" # Проверяем, что ipset существует if ! ipset list "$IPSET_NAME" &>/dev/null; then echo "Создаю ipset $IPSET_NAME..." ipset create "$IPSET_NAME" hash:ip fi # Очищаем старые IP ipset flush "$IPSET_NAME" # Читаем домены из файла и резолвим в IP while read -r domain; do # Пропускаем пустые строки и комментарии [[ -z "$domain" || "$domain" =~ ^# ]] && continue echo "Обновляю: $domain" # Получаем IP через dig for ip in $(dig +short "$domain" | grep -E '^[0-9.]+$'); do ipset add "$IPSET_NAME" "$ip" done done < "$DOMAINS_FILE" echo "Готово. Текущий список:" ipset list "$IPSET_NAME"