我有几台相互连接的电脑。在每台机器上都有运行Erlang节点,我想通过Erlang术语(点对点风格)相互通信。但是,只有在我nodes()
编辑它们之后,其他计算机上的节点才会列在net_adm:ping
中。有没有办法找出所有节点(具有相同的cookie)在LAN上(并且没有列表)存储在每台计算机上的邻居)?
答案 0 :(得分:9)
目前在Erlang / OTP中没有局域网发现系统,但有几种方法可以解决这个问题:
inet:getif()
以获取LAN子网列表,然后为每个子网中的每个IP地址调用(net_kernel():epmd_module()):names(IP)
以收集正在运行的节点列表,然后net_adm:ping()它们全部连接。我认为这假设DNS解析正在工作,以便您可以将IP转换为名称,以便ping可以工作。 (我对节点连接的确切要求有点生疏)