gpt4 book ai didi

windows - 使用 BATCH (cmd) 获取 DNS 解析时间

转载 作者:可可西里 更新时间:2023-11-01 09:52:29 26 4
gpt4 key购买 nike

我正在尝试获取我的 DNS 服务器的解析时间,但我不确定我是否做得很好。

首先,我尝试对我的 DNS 服务器 IP 执行 ping 操作,并获取时间值,但我不确定它是否是正确的值,因为我认为该值是发出请求并获取的时间对此 IP 的响应。

然后我尝试发出 2 个不同的 ping,一个像这样:"ping www.google.es",第二个像这样:"ping googleIP" 并进行比较时间,但时间完全一样。

最后,我尝试搜索一个可以提供此信息的命令,但找不到。我尝试了 nslookup,但这不是我需要的答案。是否存在任何命令或任何方式来获取此信息?

谢谢。 :)

最佳答案

更新: C.J. Jackson正确地注意到,在测量 DNS 解析时间时,您必须考虑缓存。我认为这在回答并专注于测量命令运行时方面时是给定的。但可以肯定的是,您需要执行 ipconfig/flushdns 以在运行之间清除本地 DNS 缓存,以真正衡量您的 DNS 服务器性能。


nslookup对 DNS 服务器执行名称解析 - 所以这是正确的命令。但是正如您已经指出的那样,它不显示名称解析所花费的时间。使用 Windows 自己的 powershell 可以做到这一点:

powershell "Measure-Command { nslookup www.google.es }"

现在,这个输出在我的系统上......

Non-authoritative answer:


Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 31
Ticks : 317898
TotalDays : 3,679375E-07
TotalHours : 8,8305E-06
TotalMinutes : 0,00052983
TotalSeconds : 0,0317898
TotalMilliseconds : 31,7898

如果您想以编程方式使用此值,您可以使用 FINDSTR 进行过滤:

powershell "Measure-Command { nslookup www.google.es }" | FINDSTR "^Milliseconds"

不幸的是,这仍然输出 Non-authoritative answer:nslookup 打印到 STDERR。与批处理不同,您不能在 powershell 中重定向到 NUL - 您需要重定向到 $null:

powershell "Measure-Command { nslookup www.google.es 2> $null }" | FINDSTR "^Milliseconds"

输出:

Milliseconds      : 31

或者,正如 Stephan 所指出的那样,您还可以将重定向移到 powershell 调用之外,从而移出时间测量(我这边相差约 2 毫秒)。这是有效的,因为 powershell 输出到 STDOUT 而不是 STDERR:

powershell "Measure-Command { nslookup www.google.es }" 2>NUL | FINDSTR "^Milliseconds"

关于windows - 使用 BATCH (cmd) 获取 DNS 解析时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34743804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com