Android获取本机IP地址

自己开发时遇到一个需求,要求地域定向,获取ip,如果手机连接的是wifi,获取到是192.168.1.0这种格式的地址,如果连接的是移动网络,获取到的是10.119.32.486这种格式。

/*客户端IP/

public static String getIP(Context context){

    try {
        for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
             NetworkInterface intf = en.nextElement();
            for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();)
              {
                InetAddress inetAddress = enumIpAddr.nextElement();
                if (!inetAddress.isLoopbackAddress() && (inetAddress instanceof Inet4Address))
                {
                    return inetAddress.getHostAddress().toString();
                }
            }
        }
    }
    catch (SocketException ex){
        ex.printStackTrace();
    }
    return null;
}

以上是获取V4地址,如果要获取V6,可以将(inetAddress instanceof Inet4Address) 去掉即可。

你可能感兴趣的:(Android)