nslookup和GetHostEntry有什么区别?

时间:2013-07-15 04:43:01

标签: c# dns ip nslookup resolver

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

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

我想知道为什么会出现这种现象,以及我是否可以使用nslookup获得与GetHostEntry相同的重播。

1 个答案:

答案 0 :(得分:2)

当您致电GetHostEntry()时,您将获得本地DNS缓存中的任何数据。如果最近未检索到主机名,它将查询DNS服务器以获取信息。 NSLOOKUP命令每次都会查询DNS服务器,忽略本地缓存中可能存在的任何内容。这可能会导致相同的数据反复出现,具体取决于DNS服务器的缓存。

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

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