与Resolve-DnsName cmdlet的响应相比,nslookup的响应要慢得多

时间:2018-12-06 20:01:31

标签: powershell nslookup

我一直在尝试使用PowerShell测量DNS延迟。

我想检查DNS响应时间,并想跳过本地解析器缓存,因此我使用了import javax.swing.JFrame; import java.awt.event.MouseMotionListener; import java.awt.event.MouseEvent; public class One extends JFrame implements MouseMotionListener { public One() { this.setVisible(true); this.setSize(400, 400); } public void mouseMoved(MouseEvent e) { System.out.println("Mouse being moved..."); } public void mouseDragged(MouseEvent e) { int x = e.getX(), y = e.getY(); System.out.println("(" + x + ", " + y + ")"); } public static void main(String[] args) { One a = new One(); a.addMouseMotionListener(a); } } ,它工作正常,除非将结果与nslookup cmdlet的响应进行比较。

Resolve-DnsName

注意:我正在使用(Measure-Command { Resolve-DnsName www.google.com -DnsOnly }).TotalMillisecond 参数来确保-DnsOnly仅将DNS协议用于名称解析。

Resolve-DnsName在约10毫秒内返回响应,而Resolve-DnsName在> 100毫秒后返回响应

我不确定nslookup在内部如何工作,但是我不确定要依靠哪个结果。

2 个答案:

答案 0 :(得分:1)

我将使用Resolve-DnsName而不是nslookup

请参阅:The new nslookup: Resolve-DnsName

您看到了速度的提高,因为Resolve-DnsName是全新的本机PowerShell命令,在加载后可以在PowerShell实例中运行。 nslookup是一个可执行文件,必须加载并在新线程等中运行。这使Resolve-DnsName可以运行得更快,开销更少。另外,由于Resolve-DnsName是PowerShell的本机命令,因此与nslookup相比,它向您提供了更多的选择。

答案 1 :(得分:0)

Nslookup 不看 NRPT 表:Get-DnsClientNrptRule

-Resolve-DnsName 确实看表

-来自客户端机器查询 NRPT 的 DNS 查询

-因此,应使用 Resolve-DNS 而不是 nslookup

-另一种解决方案是使用 DIG 而不是 nslookup