Win32, компьютер с несколькими сетевыми картами, разные DNS на сетевую карту, как ведет себя gethostbyname? - PullRequest
5 голосов
/ 01 октября 2009

На компьютере с несколькими именами win32, как принудительно разрешить DNS с помощью gethostbyname () для конкретного идентификатора, если все сетевые адаптеры настроены на разные DNS и имеют одинаковую метрику?

В противном случае, как узнать, какой DNS будет использоваться для разрешения имен каждый раз, когда приложение выполняет вызов gethostbyname ()?

Ответы [ 3 ]

2 голосов
/ 03 октября 2009

Вы не можете сделать это, по крайней мере, я вполне уверен, что вы не можете указать интерфейс для отправки запросов с помощью gethostbyname () или любой из стандартных утилит сокетов.(Для этого может быть очень эзотерическая опция win32, но я держу пари на это)

Если вам абсолютно необходима эта функция, вам нужно будет выбрать стороннюю библиотеку DNS, которая предоставляет вам такуюВозможность ... или даже написать один из Scatch.

Библиотека должна будет предоставить вам средство привязки сокета UDP, который будет отправлять DNS-запросы на указанный адрес.

Также может быть способ настройки Windows для выдачи DNS-запросов из интерфейса с использованием системных настроек , но я сильно сомневаюсь, что есть способ сделать это из программы.

0 голосов
/ 16 октября 2009

Рассмотрите возможность использования сырых сокетов и реализации собственного механизма DNS-запросов.

0 голосов
/ 03 октября 2009

На этот вопрос лучше ответить: https://serverfault.com/ Этот сайт больше ориентирован на администрирование компьютера. Так что лучше всего для программирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...