Два вопроса о разрешении DNS с использованием [System.Net.Dns]: как это работает и какой порт он использует? - PullRequest
1 голос
/ 25 февраля 2011

1 - Как это работает? Этот вопрос возник, потому что я работаю с парнем, для которого звонок на System.Net.Dns.GetHostAddresses не работает. Я дал ему пример приложения, которое просто вызывает вышеупомянутый метод и отображает возвращаемые IP-адреса. Вот его объяснение после его использования:

Когда я пытаюсь разрешить www.google.com [в приложении] Это не работа на местных рабочих станциях, потому что наши внутренние DNS не разрешить внешние DNS-имена. [Но] Если я положу www.google.com в браузере прокси-сервер знает, чтобы перейти к внешние DNS-серверы для имени разрешение и разрешает имя IP-адрес. Даже если мы поставим имя прокси-сервера в приложении это не работает при тестировании разрешение.

Я выполнил некоторое прослушивание пакетов на своем рабочем компьютере (у которого есть прокси-сервер) и моем персональном компьютере (у которого нет прокси-сервера), и, кажется, во время вызова GetHostAddresses не было отправлено или получено пакетов. Итак, что именно делает этот вызов?

2

Какой номер порта используется?

Также спросил человек, с которым я работаю. Я понятия не имею об этом. Если не отправлено ни одного пакета, кажется, что ответом будет то, что порт не используется, но я не очень разбираюсь в том, что касается портов и тому подобного. Если кто-нибудь знает, как ответить на этот или даже процесс, чтобы я мог найти ответ, пожалуйста, дайте мне знать.

Ответы [ 3 ]

2 голосов
/ 25 февраля 2011

DNS это огромная тема. Что касается Q1, это зависит от того, как настроена ваша машина (тип узла). Погуглив на это, вы должны руководствоваться общими принципами.

Вот ответ о портах: Сетевые порты, используемые DNS

1 голос
/ 25 февраля 2011

Причина, по которой вы не видите сетевой трафик при использовании анализатора пакетов, может заключаться в том, что google.com уже находится в кеше DNS локального клиента.Если ваш браузер разрешил его, он будет в кеше.Попробуйте ipconfig /flushdns из командной строки, а затем снова введите nslookup для разрешения google.com.Я думаю, что вы увидите сетевой трафик.

1 голос
/ 25 февраля 2011

Причина, по которой браузер работает, а в командной строке - нет, заключается в том, что браузер настроен на использование прокси, а командная строка - нет.

Чтобы увидеть, какой код используется, используйте рефлектор. Мне посоветовали опубликовать любой код Microsoft, но я посмотрел на код, и в основном это были небезопасные вызовы Win32 API.

...