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