将“nslookup host”与“nslookup ip”进行比较

时间:2017-03-07 17:56:59

标签: powershell batch-file vbscript dns nslookup

我需要确定主机的DNS查找是否与使用标准Windows工具(CMD,VBS,POWERSHELL)的Windows平台上的IP查找输出相匹配。

这是一个例子 -

  1. 使用NSLOOKUP查询主机名(haw1)

    C:>nslookup haw1
    Server:  myserver.blah.org
    Address:  172.22.14.10
    
    Name:    haw1.blah.org
    Address:  172.40.82.70
    
  2. 然后从#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
    
  3. 比较结果以查看它们是否匹配。在这个例子中 haw1.blah.org<> ghi.blah.org

  4. 输出类似“haw1.blah.org不匹配”的内容或 “haw1.blah.org匹配”取决于结果。

  5. 知道怎么做到这一点吗?

    添加到目前为止的内容......

    这使我得到了项目的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
    

1 个答案:

答案 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