> Erlang中文手册 > names/1 获取指定主机上 Erlang 节点的名字

net_adm:names/1

获取指定主机上 Erlang 节点的名字

用法:

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

内部实现:

-spec names(Host) -> {ok, [{Name, Port}]} | {error, Reason} when
      Host :: atom() | string(),
      Name :: string(),
      Port :: non_neg_integer(),
      Reason :: address | file:posix().
 
names(Hostname) ->
    case inet:gethostbyname(Hostname) of
    {ok, {hostent, _Name, _ , _Af, _Size, [Addr | _]}} ->
        erl_epmd:names(Addr);
    Else ->
        Else
    end.

返回一个以 {Name, Port} 的元组形式组成的指定主机 Host 上的 Erlang 节点列表信息,Name 是节点名,Port 是 Erlang 节点端口。

如果 epmd 没有运行,则返回 {error, address}。

Host = net_adm:localhost(),
net_adm:names(Host).