public static String getIPAddress(Context context) {
        NetworkInfo info = ((ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
        if (info != null && info.isConnected()) {
            if (info.getType() == ConnectivityManager.TYPE_MOBILE) {//当前使用2G/3G/4G网络
                try {
                    //Enumeration en=NetworkInterface.getNetworkInterfaces();
                    for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
                        NetworkInterface intf = en.nextElement();
                        for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
                            InetAddress inetAddress = enumIpAddr.nextElement();
                            if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {
                                return inetAddress.getHostAddress();
                            }
                        }
                    }
                } catch (SocketException e) {
                    e.printStackTrace();
                }


            } else if (info.getType() == ConnectivityManager.TYPE_WIFI) {//当前使用无线网络
                WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
                WifiInfo wifiInfo = wifiManager.getConnectionInfo();
                String ipAddress = intIP2StringIP(wifiInfo.getIpAddress());//得到IPV4地址
                return ipAddress;
            }
        } else {
            //当前无网络连接,请在设置中打开网络
        }
        return null;
    }


    /**
     * 将得到的int类型的IP转换为String类型
     *
     * @param ip
     * @return
     */
    public static String intIP2StringIP(int ip) {
        return (ip & 0xFF) + "." +
                ((ip >> 8) & 0xFF) + "." +
                ((ip >> 16) & 0xFF) + "." +
                (ip >> 24 & 0xFF);
    }

更多相关文章

  1. android 判断是否有可用网络
  2. 检测Android设备有线网络连接状态
  3. Android 的cpu 硬盘 内存 网络设置 系统信息 硬件信息
  4. android检测网络连接
  5. android NetWorkHelper 网络工具类
  6. Android 识别SIM卡类型
  7. android取得当前网络连接状态
  8. 【Android】网络状态
  9. android判断是否连接网络

随机推荐

  1. Android的Message Queue
  2. Android增量编译3~5秒的背后
  3. android Canvas用法
  4. Android的webview研究
  5. Android(安卓)Animation学习笔记
  6. Android(安卓)Fragment重叠问题
  7. 【Android】异步加载解决方案
  8. Android系统开机启动流程及init进程浅析
  9. Android(安卓)事件分发机制详解
  10. Android-布局相关难点特性讲解