java获取本地虚拟机IP_获取本机的ip地址(排除虚拟机,蓝牙等ip)

博客介绍了如何在Java中正确获取本地机器的IP地址,排除虚拟机、蓝牙等无效IP,提供了两种方法:一种是通过遍历网络接口选择site-local地址;另一种是过滤特定条件的网络接口获取Inet4Address。
摘要由CSDN通过智能技术生成

项目中遇到了要获取本地ip的需求,网上查找资料遇到很多坑,很多Java获取本机ip地址的方法要么是根本获取不到,要么是获取的有问题。

网上常见的方法如下

InetAddress.getLocalHost().getHostAddress()

但是如果电脑里面有Lan,WIFI,蓝牙热点,虚拟机网卡,即存在很多的网络接口(network interfaces),每个网络接口就包含一个IP地址,并不是所有的IP地址能被外部或局域网访问,比如说虚拟机网卡地址等等。上面获取到的ip就会有误。

下面是正确的获取ip地址的方法,亲测无误:

方法一:

import java.net.InetAddress;

import java.net.NetworkInterface;

import java.net.UnknownHostException;

import java.util.Enumeration;

public class getRealIp {

public static void main(String[] args) {

try {

// 正确的IP拿法

System.out.println("get LocalHost LAN Address : " + getLocalHostLANAddress().getHostAddress());

} catch (UnknownHostException e) {

e.printStackTrace();

}

}

// 正确的IP拿法,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值