文档章节

java获取本机IP的方法

yolinfeng
 yolinfeng
发布于 2015/02/25 13:19
字数 161
阅读 47
收藏 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 开发兼容 IPv6 的网络应用程序

目前我们使用的是第二代互联网 IPv4 技术,它的最大问题是网络地址资源有限,从理论上讲,可以编址 1600 万个网络、40 亿台主机。但采用 A、B、C 三类编址方式后,可用的网络地址和主机地址的...

小编辑
2010/06/01
307
1
使用 Java Native Interface 的最佳实践

Java™ 本机接口(Java Native Interface,JNI)是一个标准的 Java API,它支持将 Java 代码与使用其他编程语言编写的代码相集成。如果您希望利用已有的代码资源,那么可以使用 JNI 作为您工...

红薯
2009/07/28
842
0
使用Java的request获取IP地址实例

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

功夫panda
2012/12/17
0
0
170709-Java实现获取本机Ip工具类

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

小灰灰Blog
2018/07/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux 权限

权限 0 000 --- 无权限 1 001 --x 执行权限 2 010 -w- 写权限 3 011 -wx 写和执行 4 100 r-- 读权限 5 101 r-x 读和执行 6 110 rw- 读和写 7 111 rwx 读写执行 755 : rwxr-xr-x 660 : rw-r...

忙碌的小蜜蜂
28分钟前
0
0
21分钟教会你分析MaxCompute账单

21分钟教会你分析MaxCompute账单 背景 阿里云大计算服务MaxCompute是一款商业化的大数据分析平台,其计算资源有预付费和后付费两种计费方式。并且产品每天按照project为维度进行计量计费(账...

阿里云云栖社区
31分钟前
0
0
Docker使用 linuxserver/letsencrypt 生成SSL证书最全解析及实践

本文使用 HTTP 和 DNS 两种校验方式对 Docker 下 linuxserver/letsencrypt 项目进行了实践。生成SpringBoot可用证书,使用 Nginx 的 htpasswd 来对网站进行密码保护,并测试使用 fail2ban 防...

java菜分享
31分钟前
0
0
代码吃鸡:Python-Robocode

最近看到一个很有“未来感”的新闻: 一辆特斯拉在拉斯维加斯出了车祸,撞“死”了一个……emmmm……机器人。不知道是意外还是炒作,又或者是这位机器人故意碰瓷,反正人们也无法从受害者口中...

crossin
35分钟前
0
0
什么是公网IP、内网IP和NAT转换?

搞网络通信应用开发的程序员,可能会经常听到外网IP(即互联网IP地址)和内网IP(即局域网IP地址),但他们的区别是什么? 1、引言 搞网络通信应用开发的程序员,可能会经常听到外网IP(即互联网I...

Linux就该这么学
45分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部