获取本机ip地址,并自动区分Windows还是linux操作系统

来源:互联网 发布:支票打印软件破解版 编辑:程序博客网 时间:2024/05/16 17:31
public static List<String> getLocalIP() {List<String> localIps=new ArrayList<String>(); InetAddress ip = null;try {// 如果是Windows操作系统if (false) {//经过测试一样可以使用isWindowsOS();所以禁用window方式ip = InetAddress.getLocalHost();}// 如果是Linux操作系统else {Enumeration<NetworkInterface> netInterfaces = (Enumeration<NetworkInterface>) NetworkInterface.getNetworkInterfaces();while (netInterfaces.hasMoreElements()) {NetworkInterface ni = (NetworkInterface) netInterfaces.nextElement();// ----------特定情况,可以考虑用ni.getName判断// 遍历所有ipEnumeration<InetAddress> ips = ni.getInetAddresses();while (ips.hasMoreElements()) {ip = (InetAddress) ips.nextElement();//System.out.println(ip.getHostAddress()+"-----"+ip.isSiteLocalAddress()+"-----"+ip.isLoopbackAddress()+"----"+ip.getHostName());if (ip.isSiteLocalAddress() && !ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == -1) {// 127.开头的都是lookback地址localIps.add(ip.getHostAddress());}}}}} catch (Exception e) {e.printStackTrace();}return localIps;}

0 0
原创粉丝点击