---
name: "net_adm"
section: "3erl"
platform: "linux"
package: "erlang-manpages"
version: "1:25.2.3+dfsg-1+deb12u4"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/net_adm"
---

# net\_adm(3erl)

Various Erlang net administration routines.

## NAME

net\_adm - Various Erlang net administration routines.

## DESCRIPTION

This module contains various network utility functions.

## EXPORTS

```
dns_hostname(Host) -> {ok, Name} | {error, Host}
```

Types:

Host = atom() \| string()\
 Name = string()\

Returns the official name of *Host*, or *{error, Host}* if no such name is found. See also *[inet(3erl)](/inet/3erl.md)*.

```
host_file() -> Hosts | {error, Reason}
```

Types:

Hosts = \[Host :: atom()\]\
 Reason = \
\
     file:posix() \|\
\
     badarg \| terminated \| system\_limit \|\
\
     {Line :: integer(), Mod :: module(), Term :: term()}\

Reads file *.hosts.erlang*, see section Files. Returns the hosts in this file as a list. Returns *{error, Reason}* if the file cannot be read or the Erlang terms on the file cannot be interpreted.

```
localhost() -> Name
```

Types:

Name = string()\

Returns the name of the local host. If Erlang was started with command-line flag *-name*, *Name* is the fully qualified name.

```
names() -> {ok, [{Name, Port}]} | {error, Reason}
```

```
names(Host) -> {ok, [{Name, Port}]} | {error, Reason}
```

Types:

Host = atom() \| string() \| inet:ip\_address()\
 Name = string()\
 Port = integer() \>= 0\
 Reason = address \| file:posix()\

Similar to *epmd -names*, see *erts:[epmd(1)](/epmd/1.md)*. *Host* defaults to the local host. Returns the names and associated port numbers of the Erlang nodes that *epmd* registered at the specified host. Returns *{error, address}* if *epmd* is not operational.

*Example:*

```
(arne@dunn)1> net_adm:names().
{ok,[{"arne",40262}]}
```

```
ping(Node) -> pong | pang
```

Types:

Node = atom()\

Sets up a connection to *Node*. Returns *pong* if it is successful, otherwise *pang*.

```
world() -> [node()]
```

```
world(Arg) -> [node()]
```

Types:

Arg = verbosity()\

```
verbosity() = silent | verbose
```

Calls *names(Host)* for all hosts that are specified in the Erlang host file *.hosts.erlang*, collects the replies, and then evaluates *ping(Node)* on all those nodes. Returns the list of all nodes that are successfully pinged.

*Arg* defaults to *silent*. If *Arg == verbose*, the function writes information about which nodes it is pinging to *stdout*.

This function can be useful when a node is started, and the names of the other network nodes are not initially known.

Returns *{error, Reason}* if *host\_file()* returns *{error, Reason}*.

```
world_list(Hosts) -> [node()]
```

```
world_list(Hosts, Arg) -> [node()]
```

Types:

Hosts = \[atom()\]\
 Arg = verbosity()\

```
verbosity() = silent | verbose
```

Same as *world/0,1*, but the hosts are specified as argument instead of being read from *.hosts.erlang*.

## FILES

File *.hosts.erlang* consists of a number of host names written as Erlang terms. It is looked for in the current work directory, the user's home directory, and *$OTP\_ROOT* (the root directory of Erlang/OTP), in that order.

The format of file *.hosts.erlang* must be one host name per line. The host names must be within quotes.

*Example:*

```
'super.eua.ericsson.se'.
'renat.eua.ericsson.se'.
'grouse.eua.ericsson.se'.
'gauffin1.eua.ericsson.se'.
^ (new line)
```
