使用java取得本机的IP地址的方法

来源:互联网 发布:太平洋手机炒股软件 编辑:程序博客网 时间:2024/05/05 11:14

public String getHostIP() {
        String localHostIP = null;
        try {
            // ms windowsのIPを取得する。
            String osName2UpperCase = System.getProperty("os.name").toUpperCase();
            if (osName2UpperCase.indexOf("WINDOWS") >= 0) {
                InetAddress localHostAddr = InetAddress.getLocalHost();
                localHostIP = localHostAddr.getHostAddress();
            } else {
                // LinuxのIPを取得する。
                Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface
                        .getNetworkInterfaces();
                Enumeration<InetAddress> netAddresses = null;
                InetAddress netAddr = null;
                while (allNetInterfaces.hasMoreElements()) {
                    netAddresses = allNetInterfaces.nextElement().getInetAddresses();
                    while (netAddresses.hasMoreElements()) {
                        netAddr = netAddresses.nextElement();
                        if (netAddr.isSiteLocalAddress() && !netAddr.isLoopbackAddress()
                                && netAddr.getHostAddress().indexOf(":") == -1) {
                            localHostIP = netAddr.getLocalHost().getHostAddress();
                        }
                    }
                }
            }
        } catch (Exception e) {
            // ログを出力する。
            log.error(DONOT_GET_IP, e);
        }
        return localHostIP;
    }

原创粉丝点击