java 获取本机ip地址

获取本机真实ip地址,非127.0.0.1 非169.254链路本地地址。

原文地址:https://blog.csdn.net/yu532164710/article/details/80118118

详解说明:https://cloud.tencent.com/developer/article/1610919

 public static void getLocalAddress(){
        
        StringBuilder sb = new StringBuilder();
        try {
            Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();//获取本地所有网络接口
            while (en.hasMoreElements()) {//遍历枚举中的每一个元素
                NetworkInterface ni=  en.nextElement();
                Enumeration<InetAddress> enumInetAddr = ni.getInetAddresses();
                while (enumInetAddr.hasMoreElements()) {
                    InetAddress inetAddress =  enumInetAddr.nextElement();
                    // 排除loopback回环类型地址和链路本地地址
                    if (!inetAddress.isLoopbackAddress()  && !inetAddress.isLinkLocalAddress()
                            && inetAddress.isSiteLocalAddress()) {
                        sb.append("name:" + inetAddress.getHostName().toString()+"\n");
                        sb.append("ip:" + inetAddress.getHostAddress().toString()+"\n");

                    }
                }
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
        
        System.out.println(sb.toString());
    }

猜你喜欢

转载自blog.csdn.net/qq_36961530/article/details/107200621