Jacekk.info dev.Jacekk.info IP2geo.pl

Application Programming Interface

Spis treści

  1. Informacje
  2. Parametry
    1. Format
    2. IP
  3. Odpowiedzi
    1. Odpowiedź poprawna
    2. Odpowiedź pusta
    3. Błąd
  4. Przykłady
    1. PHP
    2. XML
    3. JS
    4. JSON
    5. TXT
  5. Regulamin

Informacje

W celu uzyskania informacji o pozycji danego adresu IP można wykorzystać specjalny interfejs API, dostępny pod adresem:

http://api.ip2geo.pl/[FORMAT]/?ip=[IP]

Parametry

Format

Określa rodzaj odpowiedzi serwera:

php
zserializowana tablica asocjacyjna
xml
dokument XML
js
skrypt tworzący asocjacyjną tablicę globalną o nazwie dane
json
tablica indeksowana asocjacyjnie, zapisana w formacie JavaScript Object Notation
txt
plik tesktowy, w każdej linii jedna para: klucz|wartość

IP

Adres IPv4, dla którego system ma odnaleźć lokalizację. W przypadku pominięcia pola lub błędnej jego wartości, system zastępuje je adresem IP klienta.

Odpowiedzi

Odpowiedź poprawna

Odpowiedź poprawna zawiera jedno lub więcej pól z poniższej listy, zapisanych w kodowaniu UTF-8:

db (string)
baza danych, w której znaleziono rekord (MaxMind, openGeo, WebHosting)
country (string)
dwuliterowy kod kraju
city (string)
miasto
lat (float)
szerokość geograficzna - wartość z zakresu od -90 do 0 dla szerokości geograficznych południowych lub od 0 do 90 dla szerokości geograficznych północnych
lon (float)
długość geograficzna - wartość z zakresu od -180 do 0 dla długości geograficznych zachodnich lub od 0 do 180 dla długości geograficznych wschodnich
proxy (bool)
klucz występuje, gdy użytkownik łączy się przez proxy
satellite (bool)
użytkownik łączy się z internetem przez satelitę

Odpowiedź pusta

Jeśli w bazie danych nie odnaleziono wybranego adresu zwracana jest pusta tablica (w przypadku XML - element główny bez potomków).

Błąd

W przypadku wystąpienia błędu zwracany jest plik z następującymi polami:

errcode (int)
Kod błędu
err (string)
Treść komunikatu o błędzie

Znane kody błędów:

0
Nieznany problem z bazą danych
477
Podany adres IP pochodzi z puli adresów unicast/multicast
478
Podany adres IP pochodzi z puli adresów zarezerwowanych przez IANA
479
Podany adres IP pochodzi z puli adresów prywatnych
503
Przekrocznie ilości dozwolonych zapytań

Przykłady

PHP

Kod podający kraj użytkownika:

<?php
$dane = unserialize(
   file_get_contents(
      'http://api.ip2geo.pl/php/?ip='.$_SERVER['REMOTE_ADDR']
   )
);
if(!$dane['errcode']) {
   echo 'Kraj: '.$dane['country']."\n";
}
?>

Możliwe odpowiedzi:

Odpowiedź poprawna:

a:4:{s:7:"country";s:2:"PL";s:4:"city";s:6:"Krakow";s:3:"lat";d:50.0833;s:3:"lon";d:19.9167;}

Odpowiedź pusta:

a:0:{}

Błąd:

a:2:{s:7:"errcode";i:0;s:3:"err";s:16:"Nieznany problem";}

XML

Odpowiedź poprawna:

<ip2geo>
	<country>PL</country>
	<city>Krakow</city>
	<lat>50.0833</lon>
	<lon>19.9167</lat>
</ip2geo>

Odpowiedź pusta:

<ip2geo/>

Błąd:

<ip2geo>
	<errcode>0</errcode>
	<err>Nieznany problem</err>
</ip2geo>

JS

Kod podający kraj użytkownika:

<p>Kraj: <span id="country"></span></p>
<script type="text/javascript" src="http://api.ip2geo.pl/js/"></script>
<script type="text/javascript">
if(dane['country']) {
   document.getElementById('country').appendChild(
      document.createTextNode(dane['country'])
   );
}
</script>

Możliwe odpowiedzi:

Odpowiedź poprawna:

var dane = new Array();
dane['country'] = 'PL';
dane['city'] = 'Krakow';
dane['lat'] = '50.0833';
dane['lon'] = '19.9167';

Odpowiedź pusta:

var dane = new Array();

Błąd:

var dane = new Array();
dane['errcode'] = '0';
dane['err'] = 'Nieznany problem';

JSON

Odpowiedź poprawna:

{"country":"PL","city":"Krakow","lat":50.0833,"lon":19.9167}

Odpowiedź pusta:

[]

Błąd:

{"errcode":0,"err":"Nieznany problem"}

TXT

Odpowiedź poprawna:

country|PL
city|Krakow
lat|50.0833
lon|19.9167

Odpowiedź pusta:


Błąd:

errcode|0
err|Nieznany problem

Regulamin

Zabrania się wykorzystywania usługi w celu:

Zastrzegamy sobie prawo ograniczenia ilości odpowiedzi interfejsu API do 1 000 w ciągu 1 dnia dla 1 adresu IP.

© by Jacekk.info