文档章节

java获取本机IP的方法

yolinfeng
 yolinfeng
发布于 2015/02/25 13:19
字数 161
阅读 46
收藏 0

简单的方法

InetAddress addr = InetAddress.getLocalHost();
  ip=addr.getHostAddress().toString;//获得本机IP
  address=addr.getHostName()toString;//获得本机名称

但是这个方法有局限性,在Linux下获取的地址一直为/etc/hosts文件中与本机hostname绑定的那个地址(ubuntu 9.04下默认是127.0.1.1)。

另一种方法是通过直接获取操作系统网络接口的方式来获得ip地址,代码如下:

Enumeration allNetInterfaces = null;
  try {
   allNetInterfaces = NetworkInterface.getNetworkInterfaces();
  } catch (java.net.SocketException e) {
   e.printStackTrace();
  }
  InetAddress ip = null;
  while (allNetInterfaces.hasMoreElements())
  {
   NetworkInterface netInterface = (NetworkInterface) allNetInterfaces
     .nextElement();
   System.out.println(netInterface.getName());
   Enumeration addresses = netInterface.getInetAddresses();
   while (addresses.hasMoreElements())
   {
    ip = (InetAddress) addresses.nextElement();
    if (ip != null && ip instanceof Inet4Address)
    {
     System.out.println("/u672c/u673a/u7684IP = "
       + ip.getHostAddress());
    }
   }
  }

【windows xp, ubuntu 9.04下测试通过】

© 著作权归作者所有

共有 人打赏支持
yolinfeng
粉丝 12
博文 196
码字总数 11946
作品 0
珠海
架构师
java获取ip为0:0:0:0:0:0:0:1的问题

0:0:0:0:0:0:0:1是ipv6的表现形式,对应ipv4来说相当于127.0.0.1,也就是本机 如果项目部署在本机win7系统,访问时是通过 localhost 来访问, 用java获取ip地址可能会出现该问题,这时获取的...

银月光海
2014/04/17
0
4
使用Java的request获取IP地址实例

本文向您介绍使用Java获取IP地址的方法,在request.getRemoteAddr()方法在使用方向代理失效的情况下,本文的方法依然可以获取真是地址。 在JSP里,获取客户端的IP地址的方法是:request.get...

功夫panda
2012/12/17
0
0
【Canal源码分析】Canal Server的启动和停止过程

本文主要解析下canal server的启动过程,希望能有所收获。 一、序列图 1.1 启动 1.2 停止 二、源码分析 整个server启动的过程比较复杂,看图难以理解,需要辅以文字说明。 首先程序的入口在C...

端木轩
05/24
0
0
用 JNI 进行 Java 编程(4)

高级主题 概述 从 Java 程序内调用本机代码破坏了 Java 程序的可移植性和安全性。尽管已编译的 Java 字节码保持了很好的可移植性,但必须为您打算用来运行该应用程序的每个平台重新编译本机代...

Jerikc
2012/10/08
0
0
170709-Java实现获取本机Ip工具类

180709-Java实现获取本机Ip的工具类 获取本机Ip算是比较常见的一个需求场景了,比如业务报警,可能就会带上出问题的机器IP,方便直接上去看日志定位问题,那么问题来了,如何获取机器IP呢? ...

小灰灰Blog
07/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

presto Resource Groups

资源组 资源组限制资源使用,可以对运行在其中的任务执行强制排队策略,也可以在子组间分配资源。一个任务属于一个资源组,消费这个组的资源。除了对排队任务限制外,当资源组用完资源时,不...

张欢19933
10分钟前
0
0
python连接Mysql错误:_mysql_exceptions: (1054

错误:python连接Mysql错误:_mysql_exceptions.OperationalError: (1054, "Unknown column 'CVE' in 'field lis解决办法 参考: https://blog.csdn.net/Homewm/article/details/81663504......

fang_faye
20分钟前
0
0
三分钟构建高性能WebSocket服务 | 超优雅的Springboot整合Netty方案

前言 每当使用SpringBoot进行Weboscket开发时,最容易想到的就是spring-boot-starter-websocket(或spring-websocket)。它可以让我们使用注解,很简单的进行Websocket开发,让我们更多的关注...

Yeauty
26分钟前
8
1
Windows下:Eclipse通过java开发spark程序【1】

准备:本机环境设置环境 jdk1.8,hadoop2.8.1(与服务器上hadoop环境保持一致) 第一步: 需要下载windows版本 bin目录下的文件,替换hadoop目录下原来的bin目录下的文件。下载网址是: https:...

那年的暖风
28分钟前
0
0
并发编程之AQS

一、定义 AQS(AbstractQueuedSynchronizer抽象类):是一个用于构建锁和同步容器的框架(通过继承AQS并实现它的抽象方法),它不是通过synchronized给对象加锁实现的,而仅仅只是一个工具类...

狠一点
30分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部