---
name: "nslookup"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["linux", "openbsd", "macos"]
url: "https://new.carta.tech/nslookup"
---

# nslookup(1)

query Internet name servers interactively

## NAME

**nslookup** – query Internet name servers interactively

## SYNOPSIS

**nslookup** \[**-option**\] \[*name* \| *-*\] \[*server*\]

## DESCRIPTION

The **nslookup** command queries Internet domain name servers. It has two modes: interactive and non-interactive. Interactive mode allows the user to query name servers for information about various hosts and domains or to print a list of hosts in a domain. Non-interactive mode is used to print just the name and requested information for a host or domain.

Interactive mode is entered in the following cases:

1. when no arguments are given (the default name server will be used)

2. when the first argument is a hyphen (-) and the second argument is the host name or Internet address of a name server.

Non-interactive mode is used when the name or Internet address of the host to be looked up is given as the first argument. The optional second argument specifies the host name or address of a name server.

Options can also be specified on the command line if they precede the arguments and are prefixed with a hyphen. For example, to change the default query type to host information, and the initial timeout to 10 seconds, type:

```
nslookup -query=hinfo -timeout=10
```

The **-version** option causes **nslookup** to print the version number and immediately exits.

## INTERACTIVE COMMANDS

- **exit**

  Exit the program.

- **host** \[*server*\]

  Look up information for host using the current default server or using server, if specified. If host is an Internet address and the query type is A or PTR, the name of the host is returned. If host is a name and does not have a trailing period, the search list is used to qualify the name.

  To look up a host not in the current domain, append a period to the name.

- **lserver** *domain*

  - **server** *domain*

  Change the default server to *domain*; **lserver** uses the initial server to look up information about **domain**, while **server** uses the current default server. If an authoritative answer can't be found, the names of servers that might have the answer are returned.

- **set** **keyword**=*value*

  This command is used to change state information that affects the lookups. Some keywords may be abbreviated, as shown in parentheses. Valid keywords are:

  - **all**

    Prints the current values of the frequently used options to **set**. Information about the  current default server and host is also printed.

  - **class**=*value*

    (**cl**) Change the query class to one of:

    - **ANY**

      wildcard

    - **CH**

      the Chaos class

    - **HS**

      the Hesiod class

    - **IN**

      the Internet class

      The class specifies the protocol group of the information. The default is **IN**.

  -

    \[**no**\] **d2** Turn debugging mode on or off. This displays more about what nslookup is doing. The default is **nod2**.

  -

    \[**no**\] **debug** (**nodeb**) Turn on or off the display of the full response packet and any intermediate response packets when searching. The default is **nodebug**.

  - **domain**=*name*

    Sets the search list to *name*.

  -

    \[**no**\] **fail** Try the next name server if a name server responds with SERVFAIL or a referral (**nofail**) or terminate query (**fail**) on such a response. The default is **nofail**.

  - **ndots**=*number*

    Set the number of dots (label separators) in a domain that will disable searching. Absolute names always stop searching.

  - **port**=*value*

    (**po**) Change the default TCP/UDP name server port to *value*. The default is port 53.

  - \[**query**\]**type**=*value*

    (**q**, **ty**) Change the type of the information query. The default is ‘A’.

  -

    \[**no**\] **recurse** (**rec**) Tell the name server to query other servers if it does not have the information. The default is **recurse**.

  - **retry**=*number*

    Set the number of retries to number.

  -

    \[**no**\] **search** If the lookup request contains at least one period but doesn't end with a trailing period, append the domain names in the domain search list to the request until an answer is received. The default is **search**.

  - **timeout**=*number*

    Change the initial timeout interval for waiting for a reply to number seconds.

  -

    \[**no**\] **vc** Always use a virtual circuit when sending requests to the server. The default is **novc**.

- **?**

  not implemented

- **finger**

  not implemented

- **help**

  not implemented

- **ls**

  not implemented

- **root**

  not implemented

- **view**

  not implemented

## FILES

*/etc/resolv.conf*

## EXIT STATUS

The **nslookup** command returns with an exit status of 1 if any query failed, and 0 otherwise.

## SEE ALSO

[dig(1)](/dig/1.md), [host(1)](/host/1.md)

## AUTHORS

Internet Systems Consortium, Inc.
