关于使用[System.Net.Dns]进行DNS解析的两个问题:它是如何工作的以及它使用的是什么端口?

时间:2011-02-25 16:38:13

标签: c# dns port resolution

1 - 它是如何工作的?这个问题已经出现,因为我正在与一个对System.Net.Dns.GetHostAddresses的调用不起作用的人合作。我给了他一个示例应用程序,它只调用上述方法并显示返回的IP地址。以下是使用后的解释:

  

当我尝试解析www.google.com [在应用程序中]时   它不是   在当地工作站工作,   因为我们的内部DNS没有   解析外部DNS名称。 [但]如果我放   www.google.com在浏览器中,   代理服务器知道去了   名称的外部DNS服务器   分辨率,它将名称解析为   IP地址。即使我们把   应用程序中的代理服务器名称   它在测试时不起作用   分辨率。

我在我的工作计算机(具有代理服务器)和我的个人计算机(没有代理服务器)上进行了一些数据包嗅探,似乎在GetHostAddresses期间没有发送或接收的数据包呼叫。 那么,这个电话究竟在做什么?

2:

  

使用了什么端口号?

我正在与之合作的人询问。我不知道这个。如果没有发送数据包,那么似乎答案是没有使用端口,但是当涉及端口和类似这样的事情时我不是很精明。 如果有人知道如何回答这个问题,甚至是我找到答案的过程,请告诉我。

3 个答案:

答案 0 :(得分:2)

DNS是一个很大的主题。关于Q1,它取决于您的机器配置方式(节点类型)。谷歌搜索这应该有助于你的一般原则。

以下是关于端口的答案:Network Ports Used by DNS

答案 1 :(得分:1)

浏览器工作原因和命令提示符中的原因并不是浏览器已设置为使用代理而命令提示符不是。

要查看使用的代码,请使用反射器。我被告知发布任何Microsoft代码,但我查看了代码,它主要是不安全和Win32 API调用。

答案 2 :(得分:1)

当您使用数据包嗅探器时,您没有看到任何网络流量的原因可能是google.com已经在您的本地客户端DNS缓存中。如果您的浏览器已解决它,它将在缓存中。从命令行尝试ipconfig /flushdns,然后再次使用nslookup解析google.com。我想你会看到一些网络流量。