Android获取IP地址
16lz
2021-12-04
Android获取IP地址
之前在做一个电脑端通过局域网控制手机端播放视频的软件,需要获取手机端无线网ip。
判断网络环境:
String ip;ConnectivityManager conMann = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mobileNetworkInfo = conMann.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo wifiNetworkInfo = conMann.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (mobileNetworkInfo.isConnected()) { ip = getLocalIpAddress(); System.out.println("local ip"+ip); }else if(wifiNetworkInfo.isConnected()) { WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int ipAddress = wifiInfo.getIpAddress(); ip = intToIp(ipAddress); System.out.println("wifi ip"+ip); }
获取本地移动网络ipv4地址:
public String getLocalIpAddress() { try { String ipv4; ArrayList nilist = Collections.list(NetworkInterface.getNetworkInterfaces()); for (NetworkInterface ni: nilist) { ArrayList ialist = Collections.list(ni.getInetAddresses()); for (InetAddress address: ialist){ if (!address.isLoopbackAddress() && InetAddressUtils.isIPv4Address(ipv4=address.getHostAddress())) { return ipv4; } } } } catch (SocketException ex) { Log.e("local ip", ex.toString()); } return null; }
获取WI-FI ipv4地址:
public static String intToIp(int ipInt) { StringBuilder sb = new StringBuilder(); sb.append(ipInt & 0xFF).append("."); sb.append((ipInt >> 8) & 0xFF).append("."); sb.append((ipInt >> 16) & 0xFF).append("."); sb.append((ipInt >> 24) & 0xFF); return sb.toString(); }
作者:吴志豪
原文链接: 点击这里
更多相关文章
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
- android 升级包检测并更新实现
- android一些重要开源项目
- MQTT的学习研究(十五) MQTT 和android整合文章
- android 设置时区
- Android系统信息(内存、cpu、sd卡、电量、版本)获取
- Android如何获取网络连接状态及怎样调用网络配置界面
- android 升级包检测并更新实现
- 2010.12.26——— android 获得手机号码 和 IMEI号 等