InetAddress.getLocalHost()详解及异常处理
//return the raw IP address in a string format
InetAddress.getLocalHost().getHostAddress();
//return the raw IP address of this object
InetAddress.getLocalHost().getAddress();
本机的一个运行结果:
192.168.1.104
[B@14318bb
InetAddress.getLocalHost()异常处理:
使用:InetAddress.getLocalHost() 出现异常:
“Reason: java.net.UnknownHostException zw_65_43 : …..
问题原因是在系统的 /etc/Hostname中配置了“zw_65_43” 作为主机名,
而在/etc/hosts文件中没有 相应的“zw_65_43”。
简单的解决办法是对应关系配好就可以,甚至删除/etc/Hostname这个文件也可以。
深层的原因: 在大多数Linux操作系统中,都是以/etc/hosts中的配置查找主机名的,
但是 Detian based system 用/etc/Hostname文件中的配置做主机名。
而Java 的InetAddress.java 调用 InetAddressImpl.java 的
public native String getLocalHostName() throws UnknownHostException; 来获取本地主机名,
Java 的这个方法是native的,是本地系统的一个实现,所以在本地配置出现问题的情况下,Java 代码出现问题。
依靠本机的机器名去查询IP 地址,和 ping hostname
返回的 IP 地址是同一个,并不是 ipconfig 方法得到的 eth0 IP 地址.
hostname 查看本机名称
a. 若本机名称不是一个IP地址, 比如是”sohu”,则必须在/etc/hosts中配置 sohu对应本机IP,
否则java.net.InetAddress.getLocalHost会抛出java.net.UnknownHostException异常.b. 若本机名称是一个IP地址,而且必须是本机某块网卡的IP,
c. 第三种情况比较麻烦。倘若本机名称是一个IP地址,但不是本机某块网卡的IP,或者只是某个IP地址的一部分,
比如192.168(这是我遇到过的),那么执行java.net.InetAddress.getLocalHost().getHostAddress()会得到192.0.0.168,
java.net.InetAddress.getLocalHost().getHostAddress()不会抛出异常,但相关访问会停滞很久,
原因是他在查找192.0.0.168这个地址, 若网络中不存在这个地址,最终会抛出Connection timed out异常;
若网络中存在这个地址,Connection refused to host这个异常将被抛出,这些显然都不是想要的
结论:
- 设置本机名称:hostname mName xxx最好不是写IP地址的形式,若写则必须是本机的完全IP形式(不要只写一半)
- 在/etc/hosts里加一行 本机IP mName
- 用InetAddress.getLocalHost().getHostAddress()测试一下结果是否是与本机IP一致
InetAddress.getLocalHost()详解及异常处理相关推荐
- Reactor详解之:异常处理
文章目录 简介 Reactor的异常一般处理方法 各种异常处理方式详解 Static Fallback Value Fallback Method Dynamic Fallback Value Cat ...
- java异常处理代码详解_Java异常处理机制总结
概念介绍 异常是发生在程序执行过程中阻碍程序正常执行的错误事件,当一个程序出现错误时,可能的情况有如下3种: 语法错误 代码的格式错了,某个字母输错了 运行时错误 空指针异常,数组越界,除数为零等 逻 ...
- php的异常详解,php5异常处理详解_php
扩展异常,即自定义异常 class FileExistsException extends Exception{} //用于处理文件不存在异常的类 class FileOpenException ex ...
- IP地址获取问题(InetAddress.getLocalHost().getHostAddress())
JDK1.7+Tomcat7.0+Eclipse+SSM+Bootstrap 看来还是有人遇到和我一样的问题!!!(每次进入某管理,就会去Controller的index2方法,里面调用日志Servi ...
- python seek tell_Python指针seektell详解
课程多面升级为Python3.7版本 本课程持续更新中习惯的同学们可以关注一下. 课程提供详细的课堂笔记,让你体验保姆式学习体验,并安排讲师做24小时内答疑,如果遇到问题请第一时间留言,我们会及时安排 ...
- 异常处理器详解 Java多线程异常处理机制 多线程中篇(四)
在Thread中有异常处理器相关的方法 在ThreadGroup中也有相关的异常处理方法 示例 未检查异常 对于未检查异常,将会直接宕掉,主线程则继续运行,程序会继续运行 在主线程中能不能捕获呢? 我 ...
- java异常处理机制详解
java异常处理机制详解 参考文章: (1)java异常处理机制详解 (2)https://www.cnblogs.com/vaejava/articles/6668809.html 备忘一下.
- SpringMVC异常处理机制详解[附带源码分析]
SpringMVC异常处理机制详解[附带源码分析] 参考文章: (1)SpringMVC异常处理机制详解[附带源码分析] (2)https://www.cnblogs.com/fangjian0423 ...
- SpringBoot异常处理ErrorController详解
文章目录 一.背景 二.SpringBoot的默认异常处理BasicErrorController 三.自定义错误异常 写在前面: 我是「境里婆娑」.我还是从前那个少年,没有一丝丝改变,时间只不过是考 ...
最新文章
- dede 后台 mysql_织梦dedecms使用Mysql8.0无法登录后台的解决办法
- Comprehensive evaluation of error correction methods for high-throughput sequencing data
- 合肥南站,你怎么这么棒?人民日报都夸你了!
- 【面向对象】可变对象和不可变对象
- 剥开比原看代码15:比原是如何转帐的
- netty源码分析系列——Channel
- 专用集装箱行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- Atitit mybatis业务流程配置化管理总结 目录 1. Mybatis	1 2. 流程模型常见的bpm模式	1 2.1. 活动task 流程,getway流程控制(分支跳转 循环等)	1 3
- 【D-S证据理论】学习笔记
- 基于Java、JSP的会议室预约系统毕业设计
- Java游戏实验报告_Java实验报告(实验三)
- 【教程】在线生成LaTeX中的表格
- 关于pend post 与 accept
- 学习达人榜:学无止尽,追梦无悔
- 转载《由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断》的解决方案
- 几个IDS开源系统介绍
- 国密算法SM3与SM4简介与应用
- 1-1/2+1/3-1/4+.........+1/99-1/100
- keras中的目标函数和优化函数
- Facebook Hacker Cup 2016 Qualification Round 解题报告