Я пишу небольшое приложение в C ++ для Win XP / 7 с целью, чтобы, пока приложение работает, http://*.dev будет указывать на http://localhost.
Это часть мода для XAMPP / WAMP, разрешающая виртуальные домены с именами каталогов на localhost (например, http://test.dev/index.php будет отображаться в G: \ xampp \ virtual \ test \ index.php)
Часть этого запускается как DNS-прокладка на всех адаптерах. У меня работает иконка в трее, а также ее основные функции (запускать posadis при запуске, kill при выходе, отслеживать процесс posadis и закрывать, если он умирает, давать беглый экран «о»), но мне все равно придется вручную устанавливать и отключите DNS-сервер на моих сетевых адаптерах.
«Вручную» означает следующие команды dos
IP-интерфейс netsh set dnsservers name = "{имя адаптера}" source = статический адрес = 127.0.0.1 основной
...
IP-интерфейс netsh set dnsservers name = "{имя адаптера}" source = dhcp
Это плохо, конечно; что хорошего в том, чтобы запустить DNS-прокладку, если вы не можете получить ее, так сказать, в дверном косяке?
Решения, которые я изучаю:
1) Я мог бы просто заставить приложение tray запускать команду в cscript, которая получит список адаптеров из «netsh interface ip show interfaces», а затем выполнить команды регистрации по списку. Это кажется не элегантным.
2) Поймите, где я должен искать это в C ++; в частности, мне потребуется способ перечисления системных адаптеров, записи их конфигурации при запуске программы, перенаправления их DNS на 127.0.0.1 и последующего восстановления их конфигурации в конце программы.
Будет полезна стрелка в правильном направлении. Пример фрагмента, более того. Заранее спасибо!