About
Nslookup is a DNS client program to query (ie lookup) domain name servers and get back DNS record information
Mode
Nslookup has two modes:
interactive (online)
nslookup -DnsServerHostName
non-interactive
nslookup myHostName
The local DNS file is /etc/resolv.conf
How to
Search an IP from a Domain Name
The syntax to search an IP from a Domain Name is:
nslookup name.domain_name dns_server
where:
- label.apex_domain is the canonical name where:
- label is a label from the name
- apex_domain is the apex domain. The last two labels of the name
- dns_server is the Dns server
Example when:
- The domain name looked is gerardnico.com
- The DNS server is a cloudflare one. adel.ns.cloudflare.com
- You got as IPv4: 104.18.42.134
nslookup datacadamia.com adel.ns.cloudflare.com
Result:
Server: adel.ns.cloudflare.com
Address: 173.245.58.55
Name: datacadamia.com
Addresses: 2606:4700:30::6812:2b86
2606:4700:30::6812:2a86
104.18.42.134
104.18.43.134
Reverse lookup (from IP to Name)
For a reverse lookup, just enter the IP.
Example:
nslookup 192.168.135.15
Server: amplifi.lan
Address: 192.167.133.1
Name: webserver.lan
Address: 192.168.133.15
Get all DNS properties
nslookup -all 10.50.35.120
Default server: 10.50.34.245
Address: 10.50.34.245#53
Default server: 10.50.34.244
Address: 10.50.34.244#53
Set options:
novc nodebug nod2
search recurse
timeout = 0 retry = 3 port = 53 ndots = 1
querytype = A class = IN
srchlist = reddog.microsoft.com/ad.whatever
120.35.40.09.in-addr.arpa name = hostname.ad.whatever
Get records by type
Example for the NS record (ie What is a DNS Server (nameserver) ?)
nslookup -type=NS google.com
google.com nameserver = ns2.google.com
google.com nameserver = ns3.google.com
google.com nameserver = ns4.google.com
google.com nameserver = ns1.google.com
Help
> help
Commands: (identifiers are shown in uppercase, [] means optional)
NAME - print info about the host/domain NAME using default server
NAME1 NAME2 - as above, but use NAME2 as server
help or ? - print info on common commands
set OPTION - set an option
all - print options, current server and host
[no]debug - print debugging information
[no]d2 - print exhaustive debugging information
[no]defname - append domain name to each query
[no]recurse - ask for recursive answer to query
[no]search - use domain search list
[no]vc - always use a virtual circuit
domain=NAME - set default domain name to NAME
srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2, etc.
root=NAME - set root server to NAME
retry=X - set number of retries to X
timeout=X - set initial time-out interval to X seconds
type=X - set query type (ex. A,AAAA,A+AAAA,ANY,CNAME,MX,NS,PTR,SOA,SRV)
querytype=X - same as type
class=X - set query class (ex. IN (Internet), ANY)
[no]msxfr - use MS fast zone transfer
ixfrver=X - current version to use in IXFR transfer request
server NAME - set default server to NAME, using current default server
lserver NAME - set default server to NAME, using initial server
root - set current default server to the root
ls [opt] DOMAIN [> FILE] - list addresses in DOMAIN (optional: output to FILE)
-a - list canonical names and aliases
-d - list all records
-t TYPE - list records of the given RFC record type (ex. A,CNAME,MX,NS,PTR etc.)
view FILE - sort an 'ls' output file and view it with pg
exit - exit the program
where:
- type=X is the record type