//获取ip地址 public static String getLocalIPAddress(Context context) { NetworkInfo info = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); if (info != null && info.isConnected()) { if (info.getType() == ConnectivityManager.TYPE_MOBILE) { //3G/4G网络 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() && inetAddress instanceof Inet4Address) { return inetAddress.getHostAddress(); } } } } catch (SocketException e) { Log.e(TAG,"获取3G/4G网络IP失败"); } } else if (info.getType() == ConnectivityManager.TYPE_WIFI) { // wifi WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); String ipAddress = int2Sip(wifiInfo.getIpAddress()); return ipAddress; } else if (info.getType() == ConnectivityManager.TYPE_ETHERNET) { //有线 ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); Network network = null; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { network = mConnectivityManager.getActiveNetwork(); LinkProperties linkProperties = mConnectivityManager.getLinkProperties(network); for (LinkAddress linkAddress : linkProperties.getLinkAddresses()) { InetAddress address = linkAddress.getAddress(); if (address instanceof Inet4Address) { return address.getHostAddress(); } } } return "0.0.0.0"; } } else { return "0.0.0.0"; } return null; } /** * 将ip的整数形式转换成ip形式 * @param ip * @return */ public static String int2Sip(int ip) { StringBuilder sb = new StringBuilder(); sb.append(ip & 0xFF).append("."); sb.append((ip >> 8) & 0xFF).append("."); sb.append((ip >> 16) & 0xFF).append("."); sb.append((ip >> 24) & 0xFF); return sb.toString(); }
android获取有线、wifi、3G(4G)的IP
猜你喜欢
转载自blog.csdn.net/androidisgod/article/details/103886969
今日推荐
周排行