android 获取正确IP
2014-03-07 15:09
218 查看
项目中用到获取IP,从网上找了个方法,刚开始用手机移动网的时候,可以获取正确的IP,后来用wifi来调试获取了一连串数字,并且数字太长导致后台入库错误。
后来,发现wifi状态下获取的IP是要经过转换的,在这里提供一个转换后的方法:
经过测试方法可用,并且ip转换正确。
后来,发现wifi状态下获取的IP是要经过转换的,在这里提供一个转换后的方法:
// Get IP address public static String getLocalIpAddress(Context context) { final ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); final android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); final android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (wifi.isAvailable()) { WifiManager wifimanage = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);// 获取WifiManager // 检查wifi是否开启 if (!wifimanage.isWifiEnabled()) { } WifiInfo wifiinfo = wifimanage.getConnectionInfo(); // 将获取的int转为真正的ip地址,参考的网上的,修改了下 int i = wifiinfo.getIpAddress(); return (i & 0xFF) + "." + ((i >> 8) & 0xFF) + "." + ((i >> 16) & 0xFF) + "." + ((i >> 24) & 0xFF); } else if (mobile.isAvailable()) { 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()) { return inetAddress.getHostAddress().toString(); } } } } catch (SocketException e) { e.printStackTrace(); } } return null; }
经过测试方法可用,并且ip转换正确。
相关文章推荐
- 正确获取Android IP、MAC姿势
- android Ip获取过滤掉ipv6正确获取到IP
- Android正确获取外网ip的方法。
- android开发之socket通信 向PC机发信息 获取本机IP
- Android屏幕分辨率、密度的正确获取
- 不同Android版本设备正确获取屏幕分辨率的通用方法
- android开发之socket通信 向PC机发信息 获取本机IP
- Android获取手机Ip的方法
- Android获取外网ip
- android 获取手机信息(device ip,os version etc.)
- android获取ip和本机的物理地址
- android 4.0 系统设置dhcp获取ip增加option60 选项
- Android笔记之获取IP、掩码、网关的有效方式
- Android根据IP获取地理位置,精确到经纬度
- 【转】Android获取IP的方法,并可以判断手机是否联网
- android 获取设备IP和Mac地址
- Android-->最全获取本地IP的方法(Wifi/以太网/3G)
- android获取热点主机ip和连接热点手机ip
- android系统获取本机ip
- 业务系统获取来源IP的正确姿势