为什么broker的ip监听不能从“127.0”和“192.168”开始?如果你想获得非私人地址,以

code in RemotingUtil `public static String getLocalAddress() { try { // Traversal Network interface to get the first non-loopback and non-private address Enumeration enumeration = NetworkInterface.getNetworkInterfaces(); ArrayList ipv4Result = new ArrayList(); ArrayList ipv6Result = new ArrayList(); while (enumeration.hasMoreElements()) { final NetworkInterface networkInterface = enumeration.nextElement(); final Enumeration en = networkInterface.getInetAddresses(); while (en.hasMoreElements()) { final InetAddress address = en.nextElement(); if (!address.isLoopbackAddress()) { if (address instanceof Inet6Address) { ipv6Result.add(normalizeHostAddress(address)); } else { ipv4Result.add(normalizeHostAddress(address)); } } } }

    // prefer ipv4
    if (!ipv4Result.isEmpty()) {
        for (String ip : ipv4Result) {
            if (ip.startsWith("127.0") || ip.startsWith("192.168")) {
                continue;
            }

            return ip;
        }

        return ipv4Result.get(ipv4Result.size() - 1);
    } else if (!ipv6Result.isEmpty()) {
        return ipv6Result.get(0);
    }
    //If failed to find,fall back to localhost
    final InetAddress localHost = InetAddress.getLocalHost();
    return normalizeHostAddress(localHost);
} catch (Exception e) {
    log.error("Failed to obtain local address", e);
}

return null;

}`

原提问者GitHub用户liyiwen3

展开
收起
芬奇福贵 2023-05-26 15:44:01 107 分享 版权
1 条回答
写回答
取消 提交回答
  • 在多网卡选择的过程中,自己定制一些IP的选择策略。

    原回答者GitHub用户duhenglucky

    2023-05-26 17:44:29
    赞同 展开评论
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

还有其他疑问?
咨询AI助理