纵有疾风起
人生不言弃

获取电脑真实的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。

文章转载于:https://www.cnblogs.com/lm970585581/p/13366139.html

原著是一个有趣的人,若有侵权,请通知删除

未经允许不得转载:起风网 » 获取电脑真实的IP地址,忽略虚拟机等IP地址的干扰
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录