java 获取本机ip地址

/**

     * 取当前系统站点本地地址 linux下 和 window下可用

     *

     * @return

     */

    public static String getLocalIP() {

        String sIP = "";

        InetAddress ip = null;

        try {

            // 如果是Windows操作系统

            if (isWindowsOS()) {

                ip = InetAddress.getLocalHost();

            }

            // 如果是Linux操作系统

            else {

                boolean bFindIP = false;

                Enumeration<NetworkInterface> netInterfaces = NetworkInterface

                        .getNetworkInterfaces();

                while (netInterfaces.hasMoreElements()) {

                    if (bFindIP) {

                        break;

                    }

                    NetworkInterface ni = netInterfaces.nextElement();

                    // ----------特定情况,可以考虑用ni.getName判断

                    // 遍历所有ip

                    Enumeration<InetAddress> ips = ni.getInetAddresses();

                    while (ips.hasMoreElements()) {

                        ip = ips.nextElement();

                        if (ip.isSiteLocalAddress() && !ip.isLoopbackAddress() // 127.开头的都是lookback地址

                                && ip.getHostAddress().indexOf(":") == -1) {

                            bFindIP = true;

                            break;

                        }

                    }

                }

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

        if (null != ip) {

            sIP = ip.getHostAddress();

        }

        return sIP;

    }



    public static boolean isWindowsOS() {

        if ("//".equals(File.separator)) {

            return true;

        } else {

            return false;

        }

    }

 

你可能感兴趣的:(java)