//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这个异常将被抛出,这些显然都不是想要的

结论:

  1. 设置本机名称:hostname mName xxx最好不是写IP地址的形式,若写则必须是本机的完全IP形式(不要只写一半)
  2. 在/etc/hosts里加一行 本机IP mName
  3. 用InetAddress.getLocalHost().getHostAddress()测试一下结果是否是与本机IP一致

InetAddress.getLocalHost()详解及异常处理相关推荐

  1. Reactor详解之:异常处理

    文章目录 简介 Reactor的异常一般处理方法 各种异常处理方式详解 Static Fallback Value Fallback Method Dynamic Fallback Value Cat ...

  2. java异常处理代码详解_Java异常处理机制总结

    概念介绍 异常是发生在程序执行过程中阻碍程序正常执行的错误事件,当一个程序出现错误时,可能的情况有如下3种: 语法错误 代码的格式错了,某个字母输错了 运行时错误 空指针异常,数组越界,除数为零等 逻 ...

  3. php的异常详解,php5异常处理详解_php

    扩展异常,即自定义异常 class FileExistsException extends Exception{} //用于处理文件不存在异常的类 class FileOpenException ex ...

  4. IP地址获取问题(InetAddress.getLocalHost().getHostAddress())

    JDK1.7+Tomcat7.0+Eclipse+SSM+Bootstrap 看来还是有人遇到和我一样的问题!!!(每次进入某管理,就会去Controller的index2方法,里面调用日志Servi ...

  5. python seek tell_Python指针seektell详解

    课程多面升级为Python3.7版本 本课程持续更新中习惯的同学们可以关注一下. 课程提供详细的课堂笔记,让你体验保姆式学习体验,并安排讲师做24小时内答疑,如果遇到问题请第一时间留言,我们会及时安排 ...

  6. 异常处理器详解 Java多线程异常处理机制 多线程中篇(四)

    在Thread中有异常处理器相关的方法 在ThreadGroup中也有相关的异常处理方法 示例 未检查异常 对于未检查异常,将会直接宕掉,主线程则继续运行,程序会继续运行 在主线程中能不能捕获呢? 我 ...

  7. java异常处理机制详解

    java异常处理机制详解 参考文章: (1)java异常处理机制详解 (2)https://www.cnblogs.com/vaejava/articles/6668809.html 备忘一下.

  8. SpringMVC异常处理机制详解[附带源码分析]

    SpringMVC异常处理机制详解[附带源码分析] 参考文章: (1)SpringMVC异常处理机制详解[附带源码分析] (2)https://www.cnblogs.com/fangjian0423 ...

  9. SpringBoot异常处理ErrorController详解

    文章目录 一.背景 二.SpringBoot的默认异常处理BasicErrorController 三.自定义错误异常 写在前面: 我是「境里婆娑」.我还是从前那个少年,没有一丝丝改变,时间只不过是考 ...

最新文章

  1. dede 后台 mysql_织梦dedecms使用Mysql8.0无法登录后台的解决办法
  2. Comprehensive evaluation of error correction methods for high-throughput sequencing data
  3. 合肥南站,你怎么这么棒?人民日报都夸你了!
  4. 【面向对象】可变对象和不可变对象
  5. 剥开比原看代码15:比原是如何转帐的
  6. netty源码分析系列——Channel
  7. 专用集装箱行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  8. Atitit mybatis业务流程配置化管理总结 目录 1. Mybatis 1 2. 流程模型常见的bpm模式 1 2.1. 活动task 流程,getway流程控制(分支跳转 循环等) 1 3
  9. 【D-S证据理论】学习笔记
  10. 基于Java、JSP的会议室预约系统毕业设计
  11. Java游戏实验报告_Java实验报告(实验三)
  12. 【教程】在线生成LaTeX中的表格
  13. 关于pend post 与 accept
  14. 学习达人榜:学无止尽,追梦无悔
  15. 转载《由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断》的解决方案
  16. 几个IDS开源系统介绍
  17. 国密算法SM3与SM4简介与应用
  18. 1-1/2+1/3-1/4+.........+1/99-1/100
  19. keras中的目标函数和优化函数
  20. Facebook Hacker Cup 2016 Qualification Round 解题报告

热门文章

  1. cisco路由器基本实验之九 PAT的配置(Packet Tracer)
  2. ORACLE GoldenGate 配置
  3. 对比Compose 、kotlin、flutter 移动端跨平台的未来。
  4. gradle使用技巧之全局变量
  5. java.util.ConcurrentModificationException
  6. 基于空间相关的图像模板匹配及MATLAB实现
  7. 常见索引结构—FST
  8. vi在一般指令模式下几个实用的命令
  9. python xlwt模块生成excel文件并写入数据 xlrd读取数据
  10. 中文字体练习好看的手写字