Java获取电脑真实的IP地址(排除虚拟机等干扰)
时间:2022-07-22
本文章向大家介绍Java获取电脑真实的IP地址(排除虚拟机等干扰),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
import lombok.extern.slf4j.Slf4j;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
/**
* @author 乐心湖
* @date 2020/7/20 19:36
**/
public class NetUtils {
/**
* 获取本地真正的IP地址,即获得有线或者 无线WiFi 地址。
* 过滤虚拟机、蓝牙等地址
*
* @return IPv4
*/
public static String getRealIP() {
try {
Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces();
while (allNetInterfaces.hasMoreElements()) {
NetworkInterface netInterface = allNetInterfaces.nextElement();
// 去除回环接口,子接口,未运行和接口
if (netInterface.isLoopback() || netInterface.isVirtual() || !netInterface.isUp()) {
continue;
}
if (!netInterface.getDisplayName().contains("Intel")
&& !netInterface.getDisplayName().contains("Realtek")
&& !netInterface.getDisplayName().contains("Ethernet")) {
continue;
}
Enumeration<InetAddress> addresses = netInterface.getInetAddresses();
while (addresses.hasMoreElements()) {
InetAddress ip = addresses.nextElement();
if (ip != null) {
// ipv4
if (ip instanceof Inet4Address) {
return ip.getHostAddress();
}
}
}
break;
}
} catch (SocketException e) {
//捕获异常
}
return null;
}
}
在前辈原有的基础上新增了对 xp 系统的支持
参考资料:https://blog.csdn.net/yinshuomail/article/details/81624648
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 蓝桥杯 试题 算法训练 加法运算
- 蓝桥杯 试题 算法训练 My Bad
- [蓝桥杯][2013年第四届真题]买不到的数目
- [蓝桥杯][基础练习VIP]FJ的字符串
- [蓝桥杯][基础练习VIP]字符串对比
- [蓝桥杯][算法提高VIP]不同单词个数统计
- 基于spring-boot、grpc、zookeeper的分布式微服务架构
- Codeforces 660C-Hard Process【尺取法练习】
- 杭电5178 (二分练习!)
- Java 13 新特性
- 杭电 1789(贪心思维练习)
- 利用反转函数确定回文串
- Codeforces Round #618 (Div. 2)
- Educational Codeforces Round 82 (Rated for Div. 2)
- [C# 开发技巧]如何防止程序多次运行