O webu
GeoIP v PHP

V některých případech se hodí zjistit zemi, ze které se návštěvník na web připojuje.

Proč lokalisovat?

  • Nabídnutí vhodného jazyka webu / nabídnutí na lokalitu zaměřené nabídky.
  • U webů pro primárně českou/slovenskou klientelu můžeme pro cizí návštěvníky zpřísnit ochranu před spamem.

Kromě zkoumání IP adresy se dá jazyk odhadnout z hlavičky HTTP_ACCEPT_LANGUAGE nebo použít geolokační JS API (to ale musí návštěvník povolit).

GeoIP v PHP

Pro určení země určité IP adresy potřebujeme dvě věci:

  1. Databasi IP adres.

    Ta může být i zdarma – GeoLite.

    Stáhnout

  2. PHP skript, jenž bude s touto DB pracovat.

    geoip.inc

Použití

Nyní stačí PHP soubor připoji a předat soubor s databásí.

include("geoip.inc");
$gi = geoip_open("GeoIP.dat", GEOIP_STANDARD);

Kód země (např. CZ pro Českou republiku) dané IP adresy potom vrátí funkce geoip_country_code_by_addr.

$zeme = geoip_country_code_by_addr(
  $gi, 
  $ipAdresa
);

Pro plný název země v angličtině (např. Czech Republic) slouží funkce geoip_country_name_by_addr. Použití je stejné jako při získávání dvojpísmenného kódu.