# 36.14. `nis` — Interface to Sun’s NIS (Yellow Pages)

The `nis` module gives a thin wrapper around the NIS library, useful for central administration of several hosts.

Because NIS exists only on Unix systems, this module is only available for Unix.

The `nis` module defines the following functions:

`nis.``match`(key, mapname[, domain=default_domain])

  Return the match for key in map mapname, or raise an error (`nis.error`) if there is none. Both should be strings, key is 8-bit clean. Return value is an arbitrary array of bytes (may contain `NULL` and other joys).

  Note that mapname is first checked if it is an alias to another name.

  Changed in version 2.5: The domain argument allows overriding the NIS domain used for the lookup. If unspecified, lookup is in the default NIS domain.

`nis.``cat`(mapname[, domain=default_domain])

  Return a dictionary mapping key to value such that `match(key, mapname)==value`. Note that both keys and values of the dictionary are arbitrary arrays of bytes.

  Note that mapname is first checked if it is an alias to another name.

  Changed in version 2.5: The domain argument allows overriding the NIS domain used for the lookup. If unspecified, lookup is in the default NIS domain.

`nis.``maps`([domain=default_domain])

  Return a list of all valid maps.

  Changed in version 2.5: The domain argument allows overriding the NIS domain used for the lookup. If unspecified, lookup is in the default NIS domain.

`nis.``get_default_domain`()

  Return the system default NIS domain.

  New in version 2.5.

The `nis` module defines the following exception:

exception `nis.``error`

  An error raised when a NIS function returns an error code.