net_adm(3erl)
πΈ NAME πΈ
okay so bestie, this is net_adm β the Erlang Module Definition page for net_adm(3erl) β and it's literally "Various Erlang net administration routines." No cap, that's the whole name vibe. π
β¨ DESCRIPTION β¨
This module contains various network utility functions. That's it, that's the description, but it's giving "small module, big network energy." π¦
π 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). π«Ά
π 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. Important: that's a real error path, not a vibe. π
π 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. Cute. β¨
π― 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). 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}]}
That's the whole example, and yes the port is 40262. Slay. π₯
π ping(Node) -> pong | pang
Types:
Node = atom()
Sets up a connection to Node. Returns pong if it is successful, otherwise pang. It's giving ping-pong but make it Erlang. π
π 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. So yes, verbose is the "tell me everything" setting.
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}. That's a direct handoff, no extra plot twists. π
πΊοΈ 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. So you're the host-file now, bestie. π
π 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. Order matters, iykyk. π§
The format of file .hosts.erlang must be one host name per line. The host names must be within quotes. No cap, quotes are mandatory.
Example:
'super.eua.ericsson.se'.
'renat.eua.ericsson.se'.
'grouse.eua.ericsson.se'.
'gauffin1.eua.ericsson.se'.
^ (new line)
Okay and the cute little ^ (new line) is literally part of the original example, so it stays. π
Sign-off time, bestie: this iconic page is from Ericsson AB, version kernel 8.5.4.2, and it's the net_adm(3erl) manual page. The footer didn't give a date, so I'm not inventing one β we keep the facts exact. π«Άβ¨
π¦ where this page comes from
- ubuntu noble: erlang-manpages 1:25.3.2.8+dfsg-1ubuntu4 Β· Apache-2.0
- ubuntu noble: erlang-manpages 1:25.3.2.8+dfsg-1ubuntu4.8 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms