2010-02-21 126 views
5

我有几台互联的电脑。在每台机器上都运行着Erlang节点,我希望通过Erlang条款(对等风格)相互通信。然而,其他计算机上的节点仅在我net_adm:ping编辑了他们之后在nodes()中列出。有什么方法可以找出所有节点(具有相同的cookie)在LAN上(并且没有在每台计算机上存储邻居列表)吗?Erlang邻居搜索

回答

9

有在二郎山/ OTP没有LAN发现系统的权利,但有几个方法,你可以去了解它:

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

nodefinder正是我所需要的。谢谢。 – 2010-02-21 09:54:55