正确得到android设备的IP地址

    网上此类得到android设备IP地址相关的文章有很多,有一篇是比较通用的,但有一个问题:有些设备默认的是IPv6的地址,那段代码得到的就是IPv6的地址。但这显然不是咱们想要的,咱们须要的是IPv4的地址,因而代码就须要这样修改:android

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) {  //IPv4地址 return inetAddress.getHostAddress().toString();
                    }
                }
            }
        } catch (SocketException ex) {
            Log.d("IP", ex.toString());
        }

 

 注意红色的代码,这样得到的就是IPv4的地址了!
相关文章
相关标签/搜索