【发布时间】:2017-07-28 01:27:19
【问题描述】:
我需要确定在 Windows 平台上使用标准 Windows 工具(CMD、VBS、POWERSHELL)进行的 DNS 查找是否与 IP 的 DNS 查找输出相匹配。
这是一个例子 -
-
使用 NSLOOKUP 查询主机名(haw1)
C:>nslookup haw1 Server: myserver.blah.org Address: 172.22.14.10 Name: haw1.blah.org Address: 172.40.82.70 -
然后从#1的结果中查询IP地址
C:>nslookup 172.40.82.70 Server: myserver.blah.org Address: 172.22.14.10 Name: ghi1.blah.org Address: 172.40.82.70 比较结果以查看它们是否匹配。在这个例子中 haw1.blah.org ghi.blah.org
输出类似“haw1.blah.org 不匹配”或 “haw1.blah.org 匹配”取决于结果。
知道如何做到这一点吗?
添加我目前所拥有的...
这给我留下了项目的 FQDN 和名称从 DNS 返回的 IP。我不知道如何进行反向 DNS 查找和比较。
我所拥有的只是部分解决方案。
if exist name.txt del name.txt
if exist address.txt del address.txt
nslookup %1 > out.txt
type out.txt | find /v /i "server" >out1.txt
del out.txt
type out1.txt | find /v /i "172.22.14.10" >out.txt
del out1.txt
type out.txt | find /i "name" > name.txt
type out.txt | find /i "address:" > address.txt
del out.txt
for /f "tokens=2" %%i in (name.txt) do echo %%i >name1.txt
del name.txt
for /f "tokens=2" %%i in (address.txt) do echo %%i >address1.txt
del address.txt
【问题讨论】:
-
您尝试过什么,您尝试过什么失败了? SO 不是代码编写服务;最好的问题是那些提供有用信息的问题,以便回答的人可以指导您设计自己的正确答案。见How to Ask a Good Question。
-
然后查询IP地址 - 是什么让你认为只有一个IP地址?或者不会有任何 CNAME?还是只有一个 PTR 条目?使用
Resolve-DnsName,但出于“这个问题没有显示任何研究工作”的原因而投反对票 -
通常情况下,DNS 中显示的设备已不存在,而新设备分配了相同的 IP。我正在尝试确定是否发生这种情况: NSLOOKUP comp1 返回 172.10.10.10 反向查找 NSLOOKUP 172.10.10.10 返回 comp2。已验证 NSLOOKUP comp2 -> 172.10.10.10(抱歉,我无法弄清楚如何在评论中编写代码)我不是 DNS 专家,但我必须整天手动执行此操作并尝试使其自动化。
-
Resolve-DnsName 对 Windows 7 无效,因此这不是适用于任何受支持的 Windows 版本的答案
-
这个问题由DNS aging and scavenging自动解决
标签: powershell batch-file vbscript dns nslookup