1

nslookup google.co.kr 每当我尝试此命令时,IP 结果都会发生变化

但是在 C# 中,使用GetHostEntry()库中的方法System.Net.Dns,我总是得到相同的结果。

我想知道为什么会出现这种现象,以及我是否可以获得与nslookup使用GetHostEntry.

4

1 回答 1

2

当您打电话时,GetHostEntry()您将获得本地 DNS 缓存中的任何数据。如果最近没有检索到主机名,它将查询 DNS 服务器以获取信息。该NSLOOKUP命令每次都会查询 DNS 服务器,而忽略本地缓存中可能存在的任何内容。这可能会导致相同的数据一遍又一遍地返回,具体取决于 DNS 服务器上的缓存。

对于大多数简单的 DNS 结果,您每次都会获得相同的数据。对于托管在服务器组上的集群服务 - 例如 google - 结果将由 google DNS 服务器根据负载等选择。在这种情况下,您可以从 的连续调用中获得不同的结果NSLOOKUP,但GetHostEntry()会返回相同的结果,直到条目从本地 DNS 缓存中过期。

DNS 缓存有助于减少 DNS 服务器上的负载以及减少网络流量。除非您每次都需要GetHostEntry()一组不同的结果,否则会更快、更高效。

于 2013-07-15T05:10:08.773 回答