java - Jgroup 获取物理地址

标签 java jgroups

我有一些使用 JGroup 镜像的服务器。最近有一些不同步的意外行为,根据日志,Jgroup 会不时断开连接。我想在 JGroup 代码中编写一个小程序,以便在 JGroup 断开连接后通过电子邮件发送出去,并报告断开连接的机器。

问题是,基于 JavaDoc,我似乎无法从成员或 View 中提取物理 IP 地址。任何人都知道我该怎么做?

最佳答案

这是一个 hack,但它有效。 JGroups 团队已声明这很危险,因为他们可能随时更改底层代码,因此请谨慎使用。

public void receive(Message msg) {
    String srcIp;   
    Address addr = msg.getSrc();

    PhysicalAddress physicalAddr = (PhysicalAddress)channel.down(new Event(Event.GET_PHYSICAL_ADDRESS, addr));

    if(physicalAddr instanceof IpAddress) {
        IpAddress ipAddr = (IpAddress)physicalAddr;
        InetAddress inetAddr = ipAddr.getIpAddress();
        srcIp = inetAddr.getHostAddress();
    }
}

关于java - Jgroup 获取物理地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8382527/

相关文章:

java - 从android中的另一个应用程序更新应用程序的数据库

java - EC2 上跨 jgroups channel 丢失数据包的问题

Java 客户端-服务器 - 将文件分发到多个服务器

kubernetes - 使用 KUBE_PING 缩小后,Wildfly 中重复出现警告消息

jgroups - 使用 jgroups 连接两台机器

java - RMI 有多快?

java - 从 Java 中的哈希表替换字符串中的值

java - Java中允许小数位的正则表达式包括.123和123.等

java - 在MyBatis中插入子对象

java - 在 Linux (CentOS 5.4) 中运行 jNotify 时出现问题