关于JAVA取本机ip的一些传说
2013-12-31 11:13
267 查看
关于JAVA取本机ip的一些传说
参考:/article/7487820.htmlhttp://webcache.googleusercontent.com/search?q=cache:nX6WhHN0qVoJ:sw1982.iteye.com/blog/854892+isSiteLocalAddress&cd=1&hl=zh-CN&ct=clnk&gl=cn
1.获取windows下本机Ip地址方法
InetAddress.getLocalHost().getHostAddress()
2.获取Linux下本机Ip地址方法
用ifconfig看网卡:![](http://dl.iteye.com/upload/attachment/377846/824be72c-957b-3591-b123-8cd25c20fd26.gif)
这个时候就需要枚举多网卡判断了
Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();
然后结合IP4的地址段做区分,主要利用以下两个方法:
ip.isSiteLocalAddress() && !ip.isLoopbackAddress()
完整方法:
import java.net.InetAddress; import java.net.NetworkInterface; import java.net.UnknownHostException; import java.util.Enumeration; /** * User: hangyushen Date: 13-12-31 Time: 上午10:33 */ public class MainApp { public static void main(String args[]) throws UnknownHostException { // windows下获取本机ip地址方法在linux系统下的输出 System.out.println("+++++++++++++++++++++" + InetAddress.getLocalHost().getHostAddress()); InetAddress ip = null; Enumeration<NetworkInterface> netInterfaces = null; try { netInterfaces = NetworkInterface.getNetworkInterfaces(); while (netInterfaces.hasMoreElements()) { NetworkInterface ni = netInterfaces.nextElement(); System.out.println("DisplayName:" + ni.getDisplayName()); System.out.println("Name:" + ni.getName()); Enumeration<InetAddress> ips = ni.getInetAddresses(); // 输出计算机中所有设备的ip while (ips.hasMoreElements()) { System.out.println("IP:" + ips.nextElement().getHostAddress()); ip = ips.nextElement(); // 查找需要的本地ip if (ip.isSiteLocalAddress() && !ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == -1 ) { System.out.println("--------------------------" + ip.getHostAddress()); } } } } catch (Exception e) { e.printStackTrace(); } } }
输出结果:
+++++++++++++++++++++127.0.1.1 DisplayName:wlan0 Name:wlan0 IP:fe80:0:0:0:e84:dcff:fea6:e52e%3 --------------------------192.168.132.205 DisplayName:eth0 Name:eth0 IP:fe80:0:0:0:f21f:afff:fe2a:3511%2 --------------------------192.168.112.129 DisplayName:lo Name:lo IP:0:0:0:0:0:0:0:1%1
相关文章推荐
- 关于JAVA取本机ip的一些传说
- 关于JAVA取本机ip的一些传说
- Java 关于线程的一些面试题
- 原创:关于一些Java开发工具的使用心得(不断更新)
- java 关于封装jdbc操作接口的一些做法
- 关于JAVA集合类的源代码的一些记录(持续更新)
- 一些关于java连接各种db的例子
- 关于JAVA-一些要记住的东西
- 关于JAVA和C++的一些总结
- Java中一些关于日期、日期格式、日期的解析和日期的计算
- 关于JAVA排序的一些
- 关于java初学的一些笔记总结(收集+总结)与大家分享,关于自学java,有好的建议可以回帖。
- 关于Java Servlet Session的一些不可不知的知识
- Java中一些关于日期、日期格式、日期的解析和日期的计算
- 关于java中线程的一些总结
- 关于Java中Exception类的一些方法
- 关于JAVA语言IO流的一些理解
- 关于 Java Web 项目性能提升的一些思路
- 【java之路】关于oracle数据库的一些操作小结(一)
- 关于javaweb开发的一些问题