Erlang: is there an API to 'epmd'?

2019-04-08 16:54发布

问题:

Is there a way to query the name table that epmd daemon manages?

The nodes() function isn't very helpful on that front.

NOTE: I am looking for an API aside from parsing the output generated through stdout.

回答1:

To query nodes visible for epmd, call:

EpmdModule = net_kernel:epmd_module().  % erl_epmd by default
EpmdModule:names().

To get a list of connected nodes and their ports:

erlang:system_info(dist).
erlang:system_info(dist_ctrl).

The first call returns you the table in a crash dump format. If you are interested in acquiring the actual ports, use the second one.



回答2:

You get the same answer as Zed's code by doing:

net_adm:names()

I don't know if that is a more standard way of doing it or not.



标签: erlang