当前位置: 首页 > 网络应用技术

Java意识到该计算机的IP工具类

时间:2023-03-08 23:14:29 网络应用技术

  获得此机器IP是一个相对常见的需求情况。例如,业务警报可能会带来该问题的机器IP,这很方便地向上查看日志定位问题。然后问题来了,如何获取机器IP?

  如何获取机器IP?如果您了解InetAddress的工具类,则很容易编写一个简单的工具类,如下:

  上述实施是否有问题?

  当然,没有问题。带我的机器和Ali服务器执行它。如实输出预期的IP没有问题

  该计算机执行后的屏幕截图如下:

  阿里巴巴云机的屏幕截图执行如下:

  再次问,真的没有问题吗?

  在虚拟机中执行时,您可能会遇到此问题。屏幕截图如下:

  进行简单的更改,获取IPv4的地址,源代码如下:

  再次测试,输出如下:

  导入Java.net。*;

  导入java.util.enumeration;

  公共类iputil {

  公共静态最终字符串default_ip =“ 127.0.0.1”;

  /**

  *取决于第一台网卡的地址作为其内部网络IPv4地址,避免返回127.0.0.1

  *

  * @返回

  */

  public static String getLocalipbyNetCard(){

  尝试 {

  (枚举 E = NetworkInterface.getNetworkInterfaces();e.hasmoreements();)

  NetworkInterface item = e.nextlement();

  for(Interfaceaddress地址:item.getInterfaceadDresses()){{){

  ifm.isloopback()||!item.isup()){{{

  constinue;

  }

  if(iddress.getAddress()instanceoffint4address){{{

  indert4address inet4Address =(inet4Address)address.getAddress();

  返回inet4address.gethostaddress();

  }

  }

  }

  返回intetAddress.getLocalhost()。gethostaddress();

  } catch(socketException | unknownhostexception e){{{

  投掷新的RuntimeException(E);

  }

  }

  public static String getLocalip(){){

  尝试 {

  返回intetAddress.getLocalhost()。gethostaddress();

  } catch(unknownothostexception e){{{

  投掷新的RuntimeException(E);

  }

  }

  }微信公共帐户:一个灰色博客