Загрузка данных


def activate(self):
        url = self.dns_input.get()
        adapter = self.get_active_adapter()
        self.status_label.configure(text="Настройка...", text_color="yellow")
        
        try:
            # 1. Получаем IP из хоста
            host = url.replace("https://", "").split("/")[0]
            ip = socket.gethostbyname(host)
            
            # 2. Формируем правильный DoH шаблон
            doh_url = url if "://" in url else f"https://{url}/dns-query"

            # 3. Сначала регистрируем этот сервер в системном списке DoH (важный фикс!)
            # Это решит ошибку с красным текстом
            reg_doh = f'powershell "Add-DnsClientDohServerAddress -ServerAddress {ip} -DohTemplate \'{doh_url}\' -AllowFallbackToUdp $false -ErrorAction SilentlyContinue"'
            subprocess.run(reg_doh, shell=True)

            # 4. Теперь назначаем этот IP адаптеру
            set_dns = f'powershell Set-DnsClientServerAddress -InterfaceAlias \'{adapter}\' -ServerAddresses {ip}'
            subprocess.run(set_dns, shell=True)
            
            # 5. И только теперь форсим шифрование
            force_doh = f'powershell Set-DnsClient -InterfaceAlias \'{adapter}\' -UseDnsOverHttps Only'
            subprocess.run(force_doh, shell=True)
            
            subprocess.run('ipconfig /flushdns', shell=True)
            
            self.status_label.configure(text="Статус: АКТИВНО", text_color="green")
            self.save_config("Активно")
        except Exception as e:
            self.status_label.configure(text=f"Ошибка: {str(e)}", text_color="red")