首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查看机器是否通过Java实现了多宿主

查看机器是否通过Java实现了多宿主
EN

Stack Overflow用户
提问于 2014-01-10 15:58:45
回答 1查看 172关注 0票数 0

有没有一种内置的编程方法来确定机器是否是多宿主的?我有下面的代码片段,它可以完成任务,但看起来很麻烦。有没有更好的方法来做这件事?

代码语言:javascript
复制
int count = 0;
    try {
          InetAddress localhost = InetAddress.getLocalHost();
          InetAddress[] allMyIps = InetAddress.getAllByName(localhost.getCanonicalHostName());
          if (allMyIps != null && allMyIps.length > 1) {
              for (int i = 0; i < allMyIps.length; i++) {
                  if (allMyIps[i].isLoopbackAddress() == false) count++;
              }
          }
          if (count > 1) System.out.println("Multihomed");
        } catch (UnknownHostException e) {
          e.printStackTrace();
        }

我对此表示怀疑,因为默认情况下,所有混合网卡都配置了IpV6和IPv4 (至少在Windows7中是这样)。因此,这些作为一个多宿主出来了。有没有一种有效的方法来做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2017-11-15 09:59:40

您可以在java中使用"NetworkInterface“类。如果存在除环回接口之外的多个接口,则其多宿主。

代码语言:javascript
复制
Enumeration<NetworkInterface> ifs = NetworkInterface.getNetworkInterfaces();
int count = 0;
while (ifs.hasMoreElements()) {
    if (count > 1) {
       break;
    }

    if(!ifs.nextElement().isLoopback()) {
        count++;
    }
 }

 System.out.println(count > 1 ? "Multi-homed" : "Not Multi-homed");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21038901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档