Erlang邻居搜索

时间:2010-02-21 02:47:27

标签: search erlang lan

我有几台相互连接的电脑。在每台机器上都有运行Erlang节点,我想通过Erlang术语(点对点风格)相互通信。但是,只有在我nodes()编辑它们之后,其他计算机上的节点才会列在net_adm:ping中。有没有办法找出所有节点(具有相同的cookie)在LAN上(并且没有列表)存储在每台计算机上的邻居)?

1 个答案:

答案 0 :(得分:9)

目前在Erlang / OTP中没有局域网发现系统,但有几种方法可以解决这个问题:

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