博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java获取hostIp和hostName
阅读量:5269 次
发布时间:2019-06-14

本文共 1483 字,大约阅读时间需要 4 分钟。

InetAddress的构造函数不是公开的(public),所以需要通过它提供的静态方法来获取,有以下的方法:

static InetAddress[] getAllByName(String host)
static InetAddress getByAddress(byte[] addr)
static InetAddress getByAddress(String host,byte[] addr)
static InetAddress getByName(String host)
static InetAddress getLocalHost()

 

java获取本地ip信息时getLocalHost(),匹配C:\Windows\System32\drivers\hosts中的数据,如果是windows系统可以直接调用getLocalHost()获得。但是如果是多个网口取值的数据未知。

但是linux系统则会找到localhost.localdomain:127.0.0.1

 

所以想获得真正的ip4地址,需要从网口的地址进行筛选

1     public static InetAddress getInetAddress() throws SocketException{ 2         Enumeration
allNetInterfaces = NetworkInterface.getNetworkInterfaces(); 3 InetAddress ipHost = null; 4 while (allNetInterfaces.hasMoreElements()) { 5 NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement(); 6 Enumeration
addresses = netInterface.getInetAddresses(); 7 while (addresses.hasMoreElements()) { 8 ipHost = (InetAddress) addresses.nextElement(); 9 if (ipHost != null && ipHost instanceof Inet4Address) {10 System.out.println("本机的HOSTIP = " + ipHost.getHostAddress());11 System.out.println("本机的HOSTNAME = " + ipHost.getHostName());12 return ipHost;13 }14 }15 }16 return ipHost;17 }

 

问题来了:

如果主机有多个ipv4地址该如何处理?

 

转载于:https://www.cnblogs.com/huluyisheng/p/6867370.html

你可能感兴趣的文章
MVC在基控制器中实现处理Session的逻辑
查看>>
C#关键字var是什么,在何种情况下使用
查看>>
ASP.NET Web API实践系列01,以ASP.NET Web Form方式寄宿
查看>>
微软develop apps在QQ上部分功能的实现
查看>>
Python_lambda
查看>>
分享20个非常有创意的蓝色风格网页作品触发你的设计灵感
查看>>
C(1)—— 数据在内存中的存放形式
查看>>
20160209.CCPP体系详解(0019天)
查看>>
nodejs v6 yum方式安装
查看>>
机器学习基石笔记1
查看>>
mysql查询某一个字段是否包含中文字符
查看>>
【学习笔记】PHP基础-变量and运算符
查看>>
基于modelState的信息验证
查看>>
ASP.NET中怎样才能使自己的代码运行的效率更高
查看>>
python初步学习-python函数 (二)
查看>>
selenium学习笔记
查看>>
sed - 文本三剑客之编辑功能
查看>>
系列漫画:神秘的程序员们 全集连载——绝对经典
查看>>
P2866 糟糕的一天
查看>>
[CF803E] Roma and Poker(DP,hash)
查看>>