2010-02-21 35 views
5

Tôi có vài máy tính được kết nối. Trên mỗi máy có nút Erlang và tôi muốn giao tiếp với nhau qua các điều khoản Erlang khác (kiểu ngang hàng). Tuy nhiên các nút trên các máy tính khác được liệt kê trong nodes() chỉ sau khi tôi net_adm:ping chỉnh sửa chúng… Có cách nào để tìm hiểu xem tất cả các nút (có cùng cookie) có trên LAN (và không có danh sách các hàng xóm được lưu trữ trên mỗi máy tính) không?Tìm kiếm hàng xóm Erlang

Trả lời

9

Không có hệ thống phát hiện mạng LAN trong Erlang/OTP ngay bây giờ, nhưng có một số cách bạn có thể đi về nó:

  • đọc inet:getif() cho một danh sách các subnet LAN, và sau đó gọi (net_kernel():epmd_module()):names(IP) cho mỗi IP địa chỉ trong mỗi mạng con để thu thập danh sách các nút đang chạy, sau đó net_adm: ping() tất cả chúng để kết nối. Tôi nghĩ rằng điều này giả định rằng độ phân giải DNS đang hoạt động để bạn có thể chuyển đổi IP thành tên để ping hoạt động. (Tôi hơi yếu về các yêu cầu chính xác đối với các kết nối nút)
  • Chạy một cái gì đó như nodefinder trên mỗi nút. Nodefinder là một thư viện khám phá có thể sử dụng udp phát đa hướng để khám phá các nút Erlang trên mạng LAN.
+0

nút chọn chính xác là những gì tôi cần. Cảm ơn. –

Các vấn đề liên quan