
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]
Określa rodzaj odpowiedzi serwera:
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.
Odpowiedź poprawna zawiera jedno lub więcej pól z poniższej listy, zapisanych w kodowaniu UTF-8:
Jeśli w bazie danych nie odnaleziono wybranego adresu zwracana jest pusta tablica (w przypadku XML - element główny bez potomków).
W przypadku wystąpienia błędu zwracany jest plik z następującymi polami:
Znane kody błędów:
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";}
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>
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';
Odpowiedź poprawna:
{"country":"PL","city":"Krakow","lat":50.0833,"lon":19.9167}
Odpowiedź pusta:
[]
Błąd:
{"errcode":0,"err":"Nieznany problem"}
Odpowiedź poprawna:
country|PL city|Krakow lat|50.0833 lon|19.9167
Odpowiedź pusta:
Błąd:
errcode|0 err|Nieznany problem
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