主机上有多个网卡用java指定获取某一个网卡ip的问题

在使用Java开发中,遇到一个问题:当主机上有多个网卡时,如何指定获取某个网卡的IP。由于开启猎豹免费WiFi导致笔记本上存在两个活跃的网卡,InetAddress.getLocalHost().getHostAddress()返回了专用网络的IP,而非Tomcat运行所需的公用网络IP。目前找到获取所有IP的方法,但尚无法指定选择特定网卡的IP。问题待解决。
摘要由CSDN通过智能技术生成

前几天写过一个基于tomcat发邮件修改密码的功能,大致是这样:
点击修改密码按钮就发送一封邮件去指定账户的邮箱,邮箱里有个超链接和验证码,超链接打开进入修改密码页面。之前能用,但是今天我的笔记本打开了猎豹免费wifi,造成有两个网卡都被激活,如下图:
这里写图片描述


发给邮箱的超链接的ip地址是通过InetAddress.getLocalHost().getHostAddress()获取,此时得到的是专用网络的ip地址,而我的tomcat是在公用网络上运行的,两个ip不一致,此超链接无法跳转到修改密码页面。然后我直接写了一次测试类发现,在我笔记本上用这个方法获取的ip地址为免费wifi激活的专有网络地址,把免费wifi关掉之后就能取到公用网络即(以太网)的ip地址。

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.UnknownHostException;
im
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值