Windows中执行反向DNS查找的命令行实用程序是什么?


246

是否有内置的命令行工具可以在Windows中进行反向DNS查找?即,类似<toolname> w.x.y.z => mycomputername

我试过了:

  • nslookup:似乎只是向前查询。
  • host:不存在
  • dig:也不存在。

我通过搜索发现“ 什么是反向DNS命令行实用程序? ”,但这是专门在寻找* nix实用程序,而不是Windows。


5
应该对这个问题进行编辑,以表明它并不是真正在寻找特定于DNS的解决方案。被拒绝的答案提供了答案,但问题是您实际上需要查找NetBIOS名称而不是DNS的内容。
Barmar 2014年

Answers:


237
ping -a w.x.y.z

如果反向查找区域已正确设置,则应从IP地址解析名称。如果反向查找区域没有该记录的条目,-a则将仅ping无名称的记录。


3
这比nslookup更好,因为冲突的机器在另一个域上。非常感谢!
alastairs

4
在nslookup中,您还可以尝试:set type = PTR <enter> wxyz <enter>
Peter

2
@abstrask有最完整的答案
vinnyjames

7
可行,但实际上是该工作的错误工具。Ping用于测量网络延迟,它执行名称(或IP)查找,只是其主要目的的副作用
Massimo 2014年

3
@ Massimo-鉴于原始问题的限制,您会建议什么呢?Ping将解析DNS和netbios名称,如果您只需要快速的操作,它将成为一个很好的首选工具。
彼得

114
nslookup <ip>

是否正在寻找您想要的东西。它会告诉您您要查询的服务器及其结果。

例如:

c:\>nslookup 192.168.101.39
Server: dns1.local
Address: 192.168.101.24

Name: enigma.local
Address: 192.168.101.39

7
这失败,并显示一条消息“ <DC>找不到wxyz:不存在的域”,我无法弄清原因。我尝试了@Peter的答案,发现冲突的机器在另一个域上。
alastairs

7
它失败了,因为nslookup只关心DNS,而如果DNS不够的话,Windows中的名称可以并且将通过其他方式解析。
Massimo 2014年

77

“ ping”的问题在于它并不是严格意义上的名称服务器查找工具(例如nslookup)-例如,如果您ping主机名,则可以通过多种方法将其解析为IP地址:DNS查找,主机文件查找, WINS(禁止神)或NetBIOS广播。它还可以返回可能过期的缓存结果。

尝试这些方法的顺序取决于客户端的TCP / IP配置和节点类型标志:

  • B节点(1):广播
  • P节点(2):对等(仅适用于WINS)
  • M节点(4):混合(广播,然后是WINS)
  • H节点(8):混合(WINS,然后广播)

要查看当前计算机的节点类型:

C:\>ipconfig /all | find "Node Type"
Node Type . . . . . . . . . . . . : Hybrid

如果解决方法无关紧要,请使用

ping -a w.x.y.z

要么

nslookup w.x.y.z

随便你。如果需要确定要查询DNS服务器的正确名称,请使用nslookup

也可以看看


31

将NSLOOKUP与“ -type = ptr”参数一起使用可查询IP地址,语法为:

nslookup -type=ptr 1.2.3.4

然后还将打印“ in-addr.arpa”条目(即使未找到),例如:

C:\Users\UserName>nslookup -type=ptr 8.8.8.8
Server:  MyDnsServerName
Address:  X.X.X.X

Non-authoritative answer:
8.8.8.8.in-addr.arpa    name = google-public-dns-a.google.com

与在不使用type参数的IP地址上使用NSLOOKUP时较低的保真度响应相比:

C:\Users\UserName>nslookup 8.8.8.8
Server:  MyDnsServerName
Address:  X.X.X.X

Name:    google-public-dns-a.google.com
Address:  8.8.8.8

2
如果要使用交互式nslookup,请在nslookup提示符下键入“ set q = ptr”,然后在下一行输入IP。如果您像我这样疯狂的老派,那么直到现在您才意识到您不再需要反向搜索IP,例如“ 1.0.0.127.in-addr.arpa”。
Todd Wilcox

4
无需-type=ptrset q=ptr所有- nslookup是足够聪明的regonise IP地址做反向搜索,而不是正向
abstrask

1
实际上,-type = ptr对于正确的反向查找检查是必需的,因为与仅使用IP地址的nslookup相比,它输出的结果更准确。最好打印出实际的in-addr.arpa条目(也可以在未找到时),以帮助调试或弄清楚发生了什么。
Tony Wall,

14

nslookup将在Windows上执行反向DNS,就像在Linux上一样。

当然,每个IP地址都没有反向条目


2
好的一点是,并非所有主机都会为其创建PTR记录
罗兰·肖

2
请注意,Linux,BSD和Windows上的nslookup做不同的事情,并且是不同的程序。
好人

1
如果不存在PTR,则可以通过Whois IP获取更多信息。..prob不随windoze一起提供,大声笑
nandoP 2014年


6

您可以使用标准的NSLOOKUP命令:

nslookup 123.123.123.123

为了获得结果,必须为该IP地址注册一个PTR记录


5

nslookup将在Windows中执行反向查找。

C:\>nslookup star.slashdot.org

Server:  my-dns-server
Address:  10.242.0.1

Name:    star.slashdot.org
Address:  216.34.181.48

C:\>nslookup 216.34.181.48

Server:  my-dns-server
Address:  10.242.0.1

Name:    star.slashdot.org
Address:  216.34.181.48

4

9个答案,没有人说过如何用dig反向查找?这是最好的

挖-x wxyz

另外,您可以添加“ + short”以用于bash循环,脚本等。...正向或反向:)


3
没有人提到dig它不是Windows附带的。OP的问题甚至表明了这一点。
jscott 2014年

3
dig不过,通常是DNS故障排除的最佳选择。我认为建议更好的工具绝对有价值,即使Windows不附带该工具也是如此。(可在Windows建立在isc.org/software/bind
哈坎林克韦斯特

4

在Windows下...

标准ping不返回IP地址的主机名

如果DNS设置正确,则可以使用NSLookup查找此信息

程序如下:

打开DOS提示符

NSL查询

设置type = ptr

A B C D

结果将显示为带有反向DNS服务器地址和主机名


1

还有另一种方式。反转IP地址并使用nslookup

nslookup -type=PTR 4.3.2.1.in-addr.arpa

解析地址1.2.3.4


1
但是,您必须nslookup -type=PTR 4.3.2.1.in-addr.arpa使它真正起作用。
哈坎·林德奎斯特

1

如果nslookupdighost不存在,试试这个:

getent hosts google.de | awk '{ print $1 }'

可以在docker AWS ec2实例上工作(实际上没有安装任何东西)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.