比较 "nslookup host" 与 "nslookup ip"
Compare "nslookup host" to "nslookup ip"
我需要使用标准 windows 工具(CMD、VBS、POWERSHELL)确定主机的 DNS 查找是否与 Windows 平台上 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 does not match" 或
"haw1.blah.org matches" 视结果而定。
知道如何完成这个吗?
添加我目前所拥有的...
这给我留下了项目的 FQDN 和来自 DNS 的 IP 名称 returns。我不知道如何继续进行反向 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
正如 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
虽然不是代码编写服务,但也许一个简单的例子可以提供服务。此示例将要求您键入或粘贴远程计算机名称并报告是否存在 IP 不匹配。
Clear-Host
$ComputerName = Read-Host -Prompt "IP Mismatch? Type or Paste a computer name here to detect >"
$NameLookup = [Net.DNS]::GetHostEntry($ComputerName)
$IPAddress = @($NameLookup.AddressList)[0].IPAddressToString
$IPLookup = [Net.DNS]::GetHostEntry($IPAddress)
$_N = $NameLookup.HostName.ToString()
$_NIP = $NameLookup.AddressList.IPAddressToString
$_R = $IPLookup.HostName.ToString()
$_RIP = $IPLookup.AddressList.IPAddressToString
If ($_N -eq $_R ) {
Write-Host "NO MISMATCH!`n$_N,$_NIP`n$_R,$_RIP"
}
Else {
Write-Host "WARNING MISMATCH!`n$_N,$_NIP`n$_R,$_RIP"
}
#Original Source from
#
#Modified by John Delise 2022-01-01 Happy New Year
我需要使用标准 windows 工具(CMD、VBS、POWERSHELL)确定主机的 DNS 查找是否与 Windows 平台上 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 does not match" 或 "haw1.blah.org matches" 视结果而定。
知道如何完成这个吗?
添加我目前所拥有的...
这给我留下了项目的 FQDN 和来自 DNS 的 IP 名称 returns。我不知道如何继续进行反向 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
正如 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
虽然不是代码编写服务,但也许一个简单的例子可以提供服务。此示例将要求您键入或粘贴远程计算机名称并报告是否存在 IP 不匹配。
Clear-Host
$ComputerName = Read-Host -Prompt "IP Mismatch? Type or Paste a computer name here to detect >"
$NameLookup = [Net.DNS]::GetHostEntry($ComputerName)
$IPAddress = @($NameLookup.AddressList)[0].IPAddressToString
$IPLookup = [Net.DNS]::GetHostEntry($IPAddress)
$_N = $NameLookup.HostName.ToString()
$_NIP = $NameLookup.AddressList.IPAddressToString
$_R = $IPLookup.HostName.ToString()
$_RIP = $IPLookup.AddressList.IPAddressToString
If ($_N -eq $_R ) {
Write-Host "NO MISMATCH!`n$_N,$_NIP`n$_R,$_RIP"
}
Else {
Write-Host "WARNING MISMATCH!`n$_N,$_NIP`n$_R,$_RIP"
}
#Original Source from
#
#Modified by John Delise 2022-01-01 Happy New Year