Domain-Name-System

用於返回空主機名的 nslookup 腳本

  • January 11, 2022

我想編寫返回沒有 IP 的主機名的腳本。我編寫了腳本的以下部分,但我不知道如何返回空答案。提前致謝

$numbers=1..255
foreach ($number in $numbers){
{
   nslookup host$number
}

如果要使用 Powershell 中的 nslookup,則必須處理返回的結果,因為它只是文本。相反,請使用Resolve-DnsName Powershell cmdLet。

請注意,該命令將返回所有 DNS 記錄,因此結果可以是對像數組。

這是一個關於如何使用它的小例子(我用 for 替換了你的 foreach 循環):

for($i=1 ; $i -le 255 ; $i++) {

   $DnsQuery = $null
   [array]$DnsQuery = Resolve-DnsName -Name "host$i" -ErrorAction SilentlyContinue

   # If no DNS record found, process next host
   if($DnsQuery -eq $null) {
       Write-Host "No DNS record found for host$i"
       continue ;
   }

   # Look for DNS record without IP address
   foreach($Result in $DnsQuery) {
       if($Result.IPAddress -eq $null) {
           Write-Host "DNS record without IP address found for host$i (Record type: $($Result.Type))"
       }
   }

}

引用自:https://serverfault.com/questions/1089719