码迷,mamicode.com
首页 > 编程语言 > 详细

java代码获取ip地址

时间:2015-07-27 18:05:00      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:

public class IpTool {
    public static void main(String[] args) {
        IpTool ipTool=new IpTool();
        System.out.println(ipTool.getLocalIP());
    }
    /**
     * 
     * 判斷當前操作是否Windows.
     * 
     * @return true---是Windows操作系統
     */

    private  boolean isWindowsOS() {

        boolean isWindowsOS = false;
        String osName = System.getProperty("os.name");
        if (osName.toLowerCase().indexOf("windows") > -1) {

            isWindowsOS = true;

        }
        return isWindowsOS;

    }
    /**
     * 
     * 獲取本機IP地址,並自動區分Windows還是Linux操作系統
     * 
     * 
     * 
     * @return String
     */

    public String getLocalIP() {
        String sIP = "";
        InetAddress ip = null;
        try {
            // 如果是Windows操作系統
            if (isWindowsOS()) {
                ip = InetAddress.getLocalHost();
            }
            // 如果是Linux操作系統
            else {
                boolean bFindIP = false;
                Enumeration<NetworkInterface> netInterfaces = (Enumeration<NetworkInterface>) NetworkInterface
                .getNetworkInterfaces();
                while (netInterfaces.hasMoreElements()) {
                    if (bFindIP) {
                        break;
                    }
                    NetworkInterface ni = (NetworkInterface) netInterfaces
                    .nextElement();
                    // ----------特定情況,可以考慮用ni.getName判斷
                    // 遍歷所有ip
                    Enumeration<InetAddress> ips = ni.getInetAddresses();
                    while (ips.hasMoreElements()) {
                        ip = (InetAddress) 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;

    }
}

 

java代码获取ip地址

标签:

原文地址:http://www.cnblogs.com/xiaoblog/p/4680596.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!