Cómo determinar la ubicación del dispositivo en Android mediante la dirección IP

Estoy desarrollando una aplicación de Android. Quiero determinar la ubicación del dispositivo utilizando su dirección IP. ¿Dónde empiezo? Los enlaces en las API de Google no son lo suficientemente concluyentes. Gracias.

Debería utilizar entonces fallowing API para obtener ubicación mediante ip.

API de Ip2Location

Realizar Pedido API de Geolocalización de Google Maps

Ejemplo de POST:

https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY 

Ejemplo de respuesta:

 { "location": { "lat": 51.0, "lng": -0.1 }, "accuracy": 1200.4 } 

Límites:

Usuarios de la API estándar:

2.500 consultas gratuitas por día 10 consultas por segundo, por usuario Active la facturación de pago a medida para desbloquear cuotas más altas:

$ 0.50 USD / 1000 consultas adicionales, hasta 100.000 diarios.

MÁS

Hay varios servicios web, que le proporcionan el valor de latitud y longitud de la dirección IP.

Uno de ellos es api.ipinfodb.com

Por ejemplo, puede latitud y longitud enviando solicitud como

  http://api.ipinfodb.com/v3/ip-city/?key=<your_api_key> &ip=74.125.45.100&format=json 

Esto devuelve los datos en formato json y puede obtener respuesta en XML configurando format = xml. (Necesita registrarse para obtener su clave de API).

O puede descargar la base de datos de este y este enlace.

Puede descargar conjuntos de datos, pero u tiene que actualizar constantemente.

Yo uso esto para obtener ip, país y ciudad del dispositivo

Para probar, puede utilizar RESTCLIENT , el complemento firefox para realizar peticiones HTTP.

Simplemente copie https://addons.mozilla.org/en-us/firefox/addon/restclient/ esta URL y pruebe en RESTCLIENT o simplemente pasado en la barra de direcciones del navegador

¡Espero que esto ayude!

Puede utilizar freegeoip.net .

Es un servicio gratuito de código abierto. Puede utilizar el servicio directamente o ejecutarlo en su servidor personal. También se puede desplegar a Heroku con bastante facilidad.

Para obtener la ubicación IP, simplemente use OkHttp para enviar una solicitud http / https:

 String url = "https://freegeoip.net/json/" Request mRequest = new Request.Builder() .url(url) .build(); Context mContext // A UI context new OkHttpClient().newCall(mRequest).enqueue(new Callback() { Handler mainHandler = new Handler(mContext.getApplicationContext().getMainLooper()); @Override public void onResponse(Call call, Response response) { String responseBody = null; try { responseBody = response.body().string(); } catch (final IOException e) { mainHandler.post(new Runnable() { @Override public void run() { // handle error } }); } final String finalResponseBody = responseBody; mainHandler.post(new Runnable() { @Override public void run() { // handle response body try { JSONObject locationObject = new JSONObject(finalResponseBody); } catch (JSONException e) { e.printStackTrace(); } } }); } @Override public void onFailure(Call call, final IOException e) { mainHandler.post(new Runnable() { @Override public void run() { mNetworkListener.onNetworkError(e.getMessage()); } }); } }); 

Y la respuesta se verá como algo así:

 { "ip": "192.30.253.113", "country_code": "US", "country_name": "United States", "region_code": "CA", "region_name": "California", "city": "San Francisco", "zip_code": "94107", "time_zone": "America/Los_Angeles", "latitude": 37.7697, "longitude": -122.3933, "metro_code": 807 } 
  • Cómo enviar datos al servidor en android
  • ¿Qué tan preciso y rápido es androids proveedor de ubicación de red?
  • Buscar origen de ubicación mediante Fused Location Provider
  • Cómo encontrar la estación de policía más cercana a un punto geográfico
  • Geolocalización de webview de android
  • Intentar invocar el método virtual. Aplicación para mostrar la ubicación
  • Cómo puedo conseguir la localización geográfica actual del dispositivo programatically
  • ¿Cómo realizar un seguimiento continuo de la ubicación de un teléfono móvil Android?
  • ¿Hacer algo cuando el teléfono llega a un conjunto de ubicación?
  • Error getFromLocationName, Servicio no disponible. Han estado trabajando, se detuvo
  • Android: Cómo inicializar una variable de tipo "Ubicación" (que no sea igual a null)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.