Android获取有线和无线(wifi)的IP地址
生活随笔
收集整理的這篇文章主要介紹了
Android获取有线和无线(wifi)的IP地址
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
/*** 獲取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 = getWifiIP(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;}
?
轉(zhuǎn)載于:https://www.cnblogs.com/afluy/p/4465521.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Android获取有线和无线(wifi)的IP地址的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】shell pipe与输入输出重定
- 下一篇: android sina oauth2.