java获取本机地址

Love The Way You Lie 2022-04-17 20:29 889阅读 0赞

先贴一下代码,代码出处:https://blog.csdn.net/wangxihong_123/article/details/80482725

  1. public static String getLinuxLocalIp() {
  2. String ip = "";
  3. try {
  4. for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
  5. NetworkInterface intf = en.nextElement();
  6. String name = intf.getName();
  7. if (!name.contains("docker") && !name.contains("lo")) {
  8. // 不含有docker和lo
  9. for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
  10. InetAddress inAddress = enumIpAddr.nextElement();
  11. if (!inAddress.isLoopbackAddress()) {
  12. String ipaddress = inAddress.getHostAddress().toString();
  13. if (!ipaddress.contains("::") && !ipaddress.contains("0:0:")
  14. && !ipaddress.contains("fe80")) {
  15. ip = ipaddress;
  16. }
  17. }
  18. }
  19. }
  20. }
  21. } catch (SocketException e) {
  22. System.out.println("获取ip失败");
  23. ip = "127.0.0.1";
  24. }
  25. return ip;
  26. }

代码测试在windows单网卡(台式机)的情况下可以获取到正确IP地址,多块网卡的情况下没办法获取到。

linux环境下正常获取ip(虚拟机测试结果)

贴一下我本机的网卡配置。机器为笔记本,系统为win10企业版1803版本

20181108111939237.png

发表评论

表情:
评论列表 (有 0 条评论,889人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java获取IP地址

    在网上找了几个用java获取本机IP地址的代码,发现都少都有些不完美,自己整理了一下.突然之间很想把自己的IP地址给获取了,虽然用系统自带命令可以得到,但自己想写一个程序获取一