自己开发时遇到一个需求,要求地域定向,获取ip,如果手机连接的是wifi,获取到是192.168.1.0这种格式的地址,如果连接的是移动网络,获取到的是10.119.32.486这种格式。
/*客户端IP/
public static String getIP(Context context){
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){
ex.printStackTrace();
}
return null;
}
以上是获取V4地址,如果要获取V6,可以将(inetAddress instanceof Inet4Address) 去掉即可。