zoukankan      html  css  js  c++  java
  • 获取电脑真实的IP地址,忽略虚拟机等IP地址的干扰

    /**
     * @author yins
     * @date 2018年8月12日下午9:53:58 
     */
    
    import java.net.Inet4Address;
    import java.net.InetAddress;
    import java.net.NetworkInterface;
    import java.net.SocketException;
    import java.util.Enumeration;
     
    /**
     * 获取本地真正的IP地址,即获得有线或者无线WiFi地址。
     * 过滤虚拟机、蓝牙等地址
     * @author yins
     * @date 2018年8月12日 下午9:53:58
     */
    public class GetRealLocalIP {
     
        /**
         * 获取本地真正的IP地址,即获得有线或者无线WiFi地址。
         * 过滤虚拟机、蓝牙等地址
         * @author yins
         * @date 2018年8月12日下午9:56:35
         * @return
         */
        public static String getRealIP() {
            try {
                Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface
                        .getNetworkInterfaces();
                while (allNetInterfaces.hasMoreElements()) {
                    NetworkInterface netInterface = (NetworkInterface) allNetInterfaces
                            .nextElement();
     
                    // 去除回环接口,子接口,未运行和接口
                    if (netInterface.isLoopback() || netInterface.isVirtual()
                            || !netInterface.isUp()) {
                        continue;
                    }
                    
                    if (!netInterface.getDisplayName().contains("Intel")
                            && !netInterface.getDisplayName().contains("Realtek")) {
                        continue;
                    }
                    Enumeration<InetAddress> addresses = netInterface
                            .getInetAddresses();
                    System.out.println(netInterface.getDisplayName());
                    while (addresses.hasMoreElements()) {
                        InetAddress ip = addresses.nextElement();
                        if (ip != null) {
                            // ipv4
                            if (ip instanceof Inet4Address) {
                                System.out.println("ipv4 = " + ip.getHostAddress());
                                return ip.getHostAddress();
                            }
                        }
                    }
                    break;
                }
            } catch (SocketException e) {
                System.err.println("Error when getting host ip address"
                        + e.getMessage());
            }
            return null;
        }
    }

    此代码中只要读取到了WiFi或者有线地址其中之一立即return。

  • 相关阅读:
    B-线性代数-距离公式汇总
    B-线性代数-范数
    B-线性代数-矩阵转置
    B-概率论-贝叶斯决策
    B-概率论-极大似然估计
    B-概率论-条件概率
    2018.1.7java转型
    追求
    面向心态
    数据类型和type函数
  • 原文地址:https://www.cnblogs.com/lm970585581/p/13366139.html
Copyright © 2011-2022 走看看