当前位置: 首页 > 面试题库 >

如何从Java枚举所有已启用的NIC卡的IP地址?

汲雅珺
2023-03-14
问题内容

缺少解析输出ipconfig,没有人有100%的纯Java方法吗?


问题答案:

这很简单:

try {
  InetAddress localhost = InetAddress.getLocalHost();
  LOG.info(" IP Addr: " + localhost.getHostAddress());
  // Just in case this host has multiple IP addresses....
  InetAddress[] allMyIps = InetAddress.getAllByName(localhost.getCanonicalHostName());
  if (allMyIps != null && allMyIps.length > 1) {
    LOG.info(" Full list of IP addresses:");
    for (int i = 0; i < allMyIps.length; i++) {
      LOG.info("    " + allMyIps[i]);
    }
  }
} catch (UnknownHostException e) {
  LOG.info(" (error retrieving server host name)");
}

try {
  LOG.info("Full list of Network Interfaces:");
  for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
    NetworkInterface intf = en.nextElement();
    LOG.info("    " + intf.getName() + " " + intf.getDisplayName());
    for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
      LOG.info("        " + enumIpAddr.nextElement().toString());
    }
  }
} catch (SocketException e) {
  LOG.info(" (error retrieving network interface list)");
}


 类似资料:
  • 问题内容: 我的计算机上有多个网络接口卡,每个都有其自己的IP地址。 当我从Python的(内置)模块中使用时,它将仅返回其中之一。我如何获得其他人? 问题答案: 使用模块。由于网络很复杂,因此使用netifaces可能会有些棘手,但以下是您要执行的操作: 这样可以使它更具可读性: 如果需要IPv6地址,请使用代替。如果您想知道为什么在各处都使用列表和字典,那是因为一台计算机可以有多个NIC,每个

  • 但是,这给了我127.0.1.1的IP地址。当我使用时,我得到以下信息 首先,我不知道127.0.1.1是从哪里来的,但不管怎样,这都不是我想要的。当我谷歌的时候,我总是看到相同的语法,Bash脚本或netifaces,我试图使用标准库。 那么如何在Python中获取eth0的IP地址呢?

  • 问题内容: 我遇到了这个问题,我不知道需要迭代其实际值的实际类型。 任何想法如何从enumValue中提取其可能的值? 问题答案:

  • 问题内容: 我正在编写一个库,该库具有一组预定义的枚举值。可以说,我的枚举如下所示。 现在,使用此库的客户端可能需要添加更多值。假设客户需要添加和。这不会覆盖任何现有值,而是使枚举具有5个值。 在此之后,我应该能够使用5种不变的可能性。 实现此目标的最佳方法是什么? 问题答案: 您不能具有另一个扩展,也不能通过继承将值“添加”到现有值。 但是,可以实现。 我要做的是让原始实现标记(即没有方法声明)

  • 问题内容: 我知道该信息在枚举中可用。 如何打印所有枚举值,如:? 输出: 姓名 教育 电子邮件 电话 如何在另一个函数中将该枚举作为arg 传递? 问题答案: 您的第二部分…与或一样

  • 我使用Enum4库创建enum类,如下所示: 我想在某处打印作为列表。如何实现这一点?