5

我有几台互连的计算机。在每台机器上都运行着 Erlang 节点,我想通过 Erlang 术语(点对点风格)相互交流。但是,其他计算机上的节点nodes()仅在我net_adm:ping编辑它们等之后才会列出。有什么方法可以找出 LAN 上的所有节点(具有相同的 cookie)(并且没有在每台计算机上存储邻居列表)?

4

1 回答 1

9

目前 Erlang/OTP 中没有 LAN 发现系统,但有几种方法可以解决:

  • 读取inet:getif()LAN 子网列表,然后调用(net_kernel():epmd_module()):names(IP)每个子网中的每个 IP 地址以收集正在运行的节点列表,然后 net_adm:ping() 将它们全部连接。我认为这假设 DNS 解析正在工作,以便您可以将 IP 转换为名称,以便 ping 正常工作。(我对节点连接的确切要求有点生疏)
  • 在每个节点上运行类似nodefinder的东西。Nodefinder 是一个发现库,可以使用多播 udp 来发现 LAN 上的 Erlang 节点。
于 2010-02-21T08:53:28.557 回答