13.12. Querying Resource Records

Problem

You want to query resource records. You might want to do this if you need to find the IP address that is mapped to a particular host name or vice versa.

Solution

Using a graphical user interface

The DNS snap-in does not provide an interface for searching resource records.

Using a command-line interface

In the following command, replace <RecordType> with the type of resource record you want to find (e.g., A, CNAME, SRV) and <RecordName> with the name or IP address of the record to match.

> nslookup -type=<RecordType> 
                  <RecordName>

Using VBScript

' This code prints the resource records that match
' the specified name
' ------ SCRIPT CONFIGURATION ------
strQuery = "<RecordName>"
' ------ END CONFIGURATION ---------
   
set objDNS = GetObject("winMgmts:root\MicrosoftDNS")
set objDNSServer = objDNS.Get("MicrosoftDNS_Server.Name="".""")
set objRRs = objDNS.ExecQuery(" select * " & _
                          " from MicrosoftDNS_ResourceRecord" & _
                          " where  OwnerName = """ & strQuery & """" & _
                          " Or  DomainName = """ & strQuery & """" & _
                          " Or RecordData = """ & strQuery & """")
if objRRs.Count < 1 then
   WScript.Echo "No matches found for " & strHostName & " of " _ 
                & strRecordType & " type"
else
   for each objRR in objRRs
      WScript.Echo objRR.TextRepresentation
   next
end if

Discussion

Using a command-line interface

You can leave off the -type switch and the command will find any A, PTR, and CNAME records that match <RecordName>. You can also run nslookup from interactive mode, which you can ...

Get Windows Server Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.