Java 获取本机局域网内IP
2024-09-06 17:51:09
主要涉及NetworkInterface
、Enumeration
、InetAddress
等类
/*
获取本机网内地址
*/
public static InetAddress getInet4Address(){
try {
//获取所有网络接口
Enumeration<NetworkInterface> allNetworkInterfaces = NetworkInterface.getNetworkInterfaces();
//遍历所有网络接口
for(;allNetworkInterfaces.hasMoreElements();){
NetworkInterface networkInterface=allNetworkInterfaces.nextElement();
//如果此网络接口为 回环接口 或者 虚拟接口(子接口) 或者 未启用 或者 描述中包含VM
if(networkInterface.isLoopback()||networkInterface.isVirtual()||!networkInterface.isUp()||networkInterface.getDisplayName().contains("VM")){
//继续下次循环
continue;
}
//如果不是Intel与Realtek的网卡
// if(!(networkInterface.getDisplayName().contains("Intel"))&&!(networkInterface.getDisplayName().contains("Realtek"))){
// //继续下次循环
// continue;
// }
//遍历此接口下的所有IP(因为包括子网掩码各种信息)
for(Enumeration<InetAddress> inetAddressEnumeration=networkInterface.getInetAddresses();inetAddressEnumeration.hasMoreElements();){
InetAddress inetAddress=inetAddressEnumeration.nextElement();
//如果此IP不为空
if(inetAddress!=null){
//如果此IP为IPV4 则返回
if(inetAddress instanceof Inet4Address){
return inetAddress;
}
/*
// -------这样判断IPV4更快----------
if(inetAddress.getAddress().length==4){
return inetAddress;
}
*/
}
}
}
return null;
}catch(SocketException e){
e.printStackTrace();
return null;
}
}
参考大佬:https://blog.csdn.net/yinshuomail/article/details/81624648
最新文章
- nodejs进阶(1)—输出hello world
- js转换数据库中DateTime字段类型
- XtraBackup备份笔记
- 只用一行代码让你的ASP.NET MVC 跑起来
- makefile 简单介绍
- Mac OS X中打zip包时去除.DS_Store等指定文件
- wix xslt for adding node
- [UOJ Round#4 A] [#51] 元旦三侠的游戏 【容斥 + 递推】
- bash shell学习-正则表达式基础 (笔记)
- Eclipse代理设置
- java判断数据类型两种方式
- 《刺杀金正恩》1080p全高清无水印,附中文字幕 bt种子下载,附字母(百度网盘/360云盘)
- AIX创建用户
- 微信小程序在开发中遇到的问题与解决方法
- 世界上最好的语言搭建短链接及统计功能(附API代码)
- Python内置函数(51)——property
- leetcode337
- hdoj:2044
- 【转载】 Pytorch(0)降低学习率torch.optim.lr_scheduler.ReduceLROnPlateau类
- bootstrap中的模态框(modal,弹出层)