【问题标题】:Two questions about DNS resolution using [System.Net.Dns]: how does it work and what port does it use?关于使用 [System.Net.Dns] 进行 DNS 解析的两个问题:它是如何工作的以及它使用什么端口?
【发布时间】:2011-02-25 16:38:12
【问题描述】:

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

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

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

2:

使用什么端口号?

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

【问题讨论】:

    标签: c# dns port resolution


    【解决方案1】:

    DNS 是一个巨大的主题。关于 Q1,这取决于您的机器的配置方式(节点类型)。对此进行谷歌搜索应该可以帮助您了解一般原则。

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

    【讨论】:

      【解决方案2】:

      浏览器有效而命令提示符无效的原因是浏览器已设置为使用代理而命令提示符无效。

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • ipconfig 对于 Mono 的用户来说用处不大:P
        • @George Edison:如果他们在 Windows 下运行 Mono,它仍然可以工作。但我明白你的意思。在 Linux 下,您必须重新启动 DNS 解析器客户端,通常是 nscd。 sudo /etc/init.d/nscd restart
        猜你喜欢
        • 2011-10-27
        • 2014-10-17
        • 2018-01-30
        • 2020-08-06
        • 1970-01-01
        • 2014-12-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多