2012-12-31 1 views

Antwort

5

Sie sollten dann folgende API verwenden, um den Standort mithilfe von IP zu erhalten.

Ip2Location API

+0

Leider nach diesen Jahren nichts auf diesem Link funktioniert – SREE

2

Es gibt mehrere Web-Services, die liefert Ihnen Breite und Länge Wert von IP-Adresse.

eine solche ist api.ipinfodb.com

für ex, können Sie Breite und Länge auf Wunsch wie

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

sendet diese Daten im JSON-Format zurückgibt, und Sie können in bekommen Antwort XML durch Setzen von format = xml. (Sie müssen sich registrieren, um Ihren API-Schlüssel zu erhalten).

oder Sie können die Datenbank von this und this Link herunterladen.

Sie können Datensätze herunterladen, aber Sie müssen ständig aktualisieren.

+0

Ich habe versucht, den API-Schlüssel für diese Website, aber ohne Erfolg. Es fragt weiter nach meinem Standort, auch wenn ich es zur Verfügung gestellt haben.Sind Sie bereit, Ihren Schlüssel zu teilen? –

1

Ich benutze this zu ip, Land und Stadt Gerät

zu testen, können Sie verwenden RESTCLIENT, die Firefox AddOn für die Herstellung von HTTP-Anfragen zu erhalten.

kopieren Sie einfach https://addons.mozilla.org/en-us/firefox/addon/restclient/ diese URL und Test in RESTCLIENT oder in der Vergangenheit nur in Browser-Adressleiste

hoffe, das hilft!

+0

Gut finden. Sehr einfach mit diesem Link: http://api.hostip.info/get_json.php –

3

Kasse Google Maps Geolocation API

Probe POST:

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

Beispielantwort:

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

Grenzen:

Nutzer des Standard-API:

2.500 freie Anfragen pro Tag 10 Abfrage pro Sekunde pro Benutzer aktivieren Abrechnung Pay-as-you-go höhere Quoten zu entsperren:

$ 0.50 USD/1000 zusätzliche Abfragen bis zu 100.000 täglich.

MORE

0

können Sie freegeoip.net verwenden.

Es ist ein kostenloser Open-Source-Dienst. Sie können den Dienst direkt verwenden oder auf Ihrem persönlichen Server ausführen. Es kann auch ziemlich leicht zu Heroku eingesetzt werden.

Um die IP-Standort einfach verwenden OkHttp senden http/https Anfrage zu erhalten:

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()); 
      } 
     }); 
    } 
}); 

Und die Antwort wird wie etwa wie folgt aussehen:

{ 
    "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 
}