我需要确定主机的DNS查找是否与使用标准Windows工具(CMD,VBS,POWERSHELL)的Windows平台上的IP查找输出相匹配。
这是一个例子 -
使用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
答案 0 :(得分:0)
正如TessellingHeckler指出的那样,很多情况下这种方法都会失败。这就是说这是一个使用.Net的Net.DNS
的PowerShell方法,应该可以在Windows 7上使用:
$ComputerName = "haw1"
$NameLookup = [Net.DNS]::GetHostEntry($ComputerName)
$IPAddress = @($NameLookup.AddressList)[0].IPAddressToString
$IPLookup = [Net.DNS]::GetHostEntry($IPAddress)
$NameLookup.HostName -eq $IPLookup.HostName