nslookup google.co.kr
每次尝试此命令时,IP结果都会发生变化
但是在C#中,使用库GetHostEntry()
中的方法System.Net.Dns
,我得到了相同的结果。
我想知道为什么会出现这种现象,以及我是否可以使用nslookup
获得与GetHostEntry
相同的重播。
答案 0 :(得分:2)
当您致电GetHostEntry()
时,您将获得本地DNS缓存中的任何数据。如果最近未检索到主机名,它将查询DNS服务器以获取信息。 NSLOOKUP
命令每次都会查询DNS服务器,忽略本地缓存中可能存在的任何内容。这可能会导致相同的数据反复出现,具体取决于DNS服务器的缓存。
对于大多数简单的DNS结果,您每次都会获得相同的数据。对于托管在服务器组(例如Google)上的群集服务,谷歌DNS服务器将根据加载等选择结果。在这种情况下,您可以从NSLOOKUP
的连续调用中获得不同的结果,但GetHostEntry()
将返回相同的结果,直到条目从本地DNS缓存过期。
DNS缓存有助于减少DNS服务器上的负载并减少网络流量。除非您每次需要一组不同的结果,否则GetHostEntry()
会更快,更有效。