Java获取本地IP (windos平台、linux平台)
2016-01-14 16:32
274 查看
import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; public final class StringUtil { public static void main(String[] args) { System.out.println("get local ip for windows: "); printList(getAllLocalHostIPForWin()); System.out.println(); System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); System.out.println(); System.out.println("get local ip for linux: "); printList(getAllLocalHostIPForLinux()); } /** * @return */ private static String getLocalHostName() { String hostName; try { InetAddress addr = InetAddress.getLocalHost(); hostName = addr.getHostName(); } catch (Exception ex) { hostName = ""; } return hostName; } /** * @return */ public static List<String> getAllLocalHostIPForWin() { List<String> ret = new ArrayList<String>(); try { String hostName = getLocalHostName(); if (hostName.length() > 0) { InetAddress[] addrs = InetAddress.getAllByName(hostName); if (addrs.length > 0) { for (int i = 0; i < addrs.length; i++) { ret.add(addrs[i].getHostName() + " -> " + addrs[i].getHostAddress()); } } } } catch (Exception ex) { ret = null; } return ret; } // 上面这个方法在linux平台上将只能获取 127.0.0.1 // 为了获取到linux上的IP地址,请使用下面的方法。 // 但下面的这个方法也可用于windows平台,但获取的信息比真实的网卡信息要多。请自行分辨。 /** * @return */ public static List<String> getAllLocalHostIPForLinux() { List<String> ret = new ArrayList<String>(); try { Enumeration<?> e1 = (Enumeration<?>) NetworkInterface.getNetworkInterfaces(); NetworkInterface ni = null; while (e1.hasMoreElements()) { ni = (NetworkInterface) e1.nextElement(); Enumeration<?> e2 = ni.getInetAddresses(); InetAddress ia = null; while (e2.hasMoreElements()) { ia = (InetAddress) e2.nextElement(); ret.add(ia.getHostName() + " -> " + ia.getHostAddress()); } } } catch (SocketException e) { e.printStackTrace(); } return ret; } /** * * @param list */ public static void printList(List<String> list) { for (String ele : list) { System.out.println(ele); } } }
我本地的运行结果截图如下:
大小: 132.7 KB
查看图片附件
相关文章推荐
- Linux软件安装缺少依赖包解决方法。
- Linux 文件系统类型 文件系统结构 与Windows文件系统的比较
- linux mysql-bin二进制日志清除
- 【阿里云环境配置】Centos 下Mysql的安装和配置
- linux 关闭防火墙
- Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS
- 08.Linux Install FTP
- Linux 运行级别
- fuel Linux 一键部署 openstack ,onos 作为sdn,取代neutron的L2/L3 功能
- CentOS7 安装 zabbix-2.4.2 web端Missing Database问题
- TIP: system errno 12 Cannot allocate memory
- Linux 文件查看命令
- CentOS 6.4下PXE+Kickstart无人值守安装操作系统
- Linux 文件权限
- Linux 用户名文件
- Linux 用户跟用户组
- Linux vim
- centos下卸载jdk
- Linux 安装命令
- CentOS-6.3安装配置JDK-7或 JDK-6