Android获取有线和无线(wifi)的IP地址
/** * 获取IP * * @param context * @return */ public static String getIP(Context context) { String ip = "0.0.0.0"; ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = connectivityManager.getActiveNetworkInfo(); int type = info.getType(); if (type == ConnectivityManager.TYPE_ETHERNET) { ip = getEtherNetIP(); } else if (type == ConnectivityManager.TYPE_WIFI) { ip = DeviceIpUtil.getDeviceIP(context); } return ip; } /** * 获取有线地址 * * @return */ public static String getEtherNetIP() { 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().toString(); } } } } catch (SocketException ex) { Log.e("WifiPreference IpAddress", ex.toString()); } return "0.0.0.0"; } /** * 获取wifiIP地址 * * @param context * @return */ public static String getWifiIP(Context context) { android.net.wifi.WifiManager wifi = (android.net.wifi.WifiManager) context .getSystemService(android.content.Context.WIFI_SERVICE); WifiInfo wifiinfo = wifi.getConnectionInfo(); int intaddr = wifiinfo.getIpAddress(); byte[] byteaddr = new byte[] { (byte) (intaddr & 0xff), (byte) (intaddr >> 8 & 0xff), (byte) (intaddr >> 16 & 0xff), (byte) (intaddr >> 24 & 0xff) }; InetAddress addr = null; try { addr = InetAddress.getByAddress(byteaddr); } catch (Exception e1) { e1.printStackTrace(); } String mobileIp = addr.getHostAddress(); return mobileIp; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。