转自CSDN的Android_Tutor的博文,因为感觉很有用。

public String getLocalIpAddress() {
    try {
        for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
            NetworkInterface intf = en.nextElement();
            for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                InetAddress inetAddress = enumIpAddr.nextElement();
                if (!inetAddress.isLoopbackAddress()) {
                    return inetAddress.getHostAddress().toString();
                }
            }
        }
    } catch (SocketException ex) {
        Log.e(LOG_TAG, ex.toString());
    }
    return null;
}

 在Android_Tutor代码中,LOG_TAG需要加上双引号,另外我一直认为拿来主义很正确嘛,就比如这个方法,里面有些名称或类都不认识,没关系,知道能返回String类型的IP就行了,当然如果时间充裕的话,稍微理解下也好,细嚼慢咽当然好,囫囵吞枣不也为是一种方法。这个方法就是获取用户当前IP,无论是wifi还是3g上网,当设置为飞行模式的时候,获取的就是null了,

posted on 2013-05-19 12:47  移动互联奇葩  阅读(243)  评论(0编辑  收藏  举报