ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

InetAddress.getLocalHost().getHostAddress() 问题

2022-05-11 00:31:24  阅读:215  来源: 互联网

标签:getLocalHost IP 地址 主机名 xx 66 InetAddress 本机 getHostAddress


InetAddress.getLocalHost().getHostAddress() 取的本地 IP,于是把取得的 IP 地址打了出来,是 66.xx.xx.xx 的 IP,但实际本机 IP 是 192.168.11.185,怎么可能呢?难道是这个方法不会区分哪个 IP 才是真实 IP (这台机器有多个 IP 地址,有虚通道IP),用 ifconfig 命令查也没有这个 66 网段的IP呀!于是 PING 这个 66 网段的 IP 地址,还能 ping 通!又 ping 了一下本机的主机名(hostname),结果 PING 到了 66 这个 IP 上!嗯,问题有了结论了。
    查看 /etc/hosts 文件,里面果然有一条本机名和 66.xx.xx.xx IP 对应的记录。把它注释掉,然后修改了一下本机的主机名,又在 hosts 文件中加入主机名和 127.0.0.1 的对应,问题解决了。
    InetAddress.getLocalHost().getHostAddress() 方法的实现方法不是很清楚,就知道它能找到本机 IP,原来它是依靠本机的机器名去查询的 IP 地址,和 ping `hostname` 返回的 IP 地址是同一个,并不是 ifconfig 方法得到的 eth0 IP 地址。

 

标签:getLocalHost,IP,地址,主机名,xx,66,InetAddress,本机,getHostAddress
来源: https://www.cnblogs.com/tszr/p/16256194.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有