• Zjistěte region podle IP adresy php. Sypex Geo - rychlá identifikace města podle IP. Online služby pro geografické cílení

    Ve kterém bylo zmíněno moje „kolo“, které se vyznačuje vysokou rychlostí. Jednou z oblíbených otázek byla možnost určení města podle IP.

    A nyní, o pár měsíců později, se projekt, který začal jako „pro zábavu“, rozrostl v samostatný projekt.
    Byl otevřen samostatný web věnovaný projektu Sypex Geo, kde si můžete stáhnout nejnovější verze API a databází a také si přečíst dokumentaci.

    Pro ty, kteří si chtějí rychle otestovat správnost určení města podle IP - zde je odkaz na demo stránku. A pod habrakat popíšu nějaké technické detaily a dám výsledky malého testu.

    Formát Sypex Geo 2.1

    Od vydání posledního článku byl optimalizován formát Sypex Geo (zkráceně SxGeo) a do databáze byla přidána možnost zahrnout dvě referenční knihy – města a regiony.

    Při vytváření nového formátu byly nastaveny následující priority:

    • vysoká rychlost
    • nízká spotřeba zdrojů
    • otevřenost (specifikace formátu binárního souboru databáze a API jsou otevřené)
    • univerzálnost (schopnost vytvářet databáze s libovolnými datovými sadami)
    Formát umožňuje ukládat data v různých kódováních. Po opuštění beta verze budou publikovány skripty pro převod databáze z MySQL do binárního DB souboru.

    V databázi jsou uloženy následující informace:

    • ID země
    • Kód země ISO 3166-1 (dva znaky)
    • Kód regionu FIPS 10-4 (dva znaky)
    • Název oblasti (volitelné)
    • Město
    • Zeměpisná šířka
    • Zeměpisná délka
    • časové pásmo (volitelné)
    Tento seznam lze podle potřeby upravit a/nebo rozšířit. Více informací o formátu SxGeo 2.1 naleznete na webu.

    Vlastní databáze

    Po velmi blízkém seznámení s oblíbeným geolokačním systémem GeoLite City od MaxMind bylo rozhodnuto o vytvoření vlastní databáze. Problém je v tom, že GeoLite City má spoustu nepřesností, odpadky, duplicitní města, přílišné dělení areálů a také problémy s městy bývalého SSSR (například místo měst názvy firem nebo jména odpovědných z Whois jsou převzaty).

    Databáze je aktuálně založena na GeoLite City, ale již obsahuje zcela přepracované pokrytí Ruska, Ukrajiny a Běloruska. Postupně budou upřesňovány další země, především SNS a Evropa. Databáze Sypex Geo City obsahuje názvy měst a regionů v ruštině v UTF-8 (stále existují nepřeložená jména) a také časové pásmo.

    Kromě toho jsou na webu k dispozici další databáze převedené do formátu SxGeo 2.1.

    Používání

    Použití Sypex Geo API je maximálně jednoduché.
    1. Zkopírujte SxGeo.php a SxGeoCity.dat (nebo jiné databáze) na server 2. Zahrňte soubor SxGeo.php do svého skriptu přidáním řádku include("SxGeo.php"); 3. Vytvořte objekt SxGeo //$SxGeo = new SxGeo(); // Výchozí režim, databázový soubor SxGeo.dat $SxGeo = new SxGeo("SxGeoCity.dat", SXGEO_BATCH | SXGEO_MEMORY); // Nejrychlejší režim 4. Určete město (SxGeo City, GeoLite City, IpGeoBase) $SxGeo->get($ip); (vrací informace o městě, bez názvu regionu a časového pásma) // $SxGeo->getCityFull($ip); (vrací úplné informace o městě a regionu)

    Testování výkonu

    A jako dezert malé srovnávací testování výkonu. Odpůrci jsou GeoLite API a Geobaza API. Všichni účastníci testu používají binární databázi vlastního formátu a používají PHP API. Testování probíhá pod Win 7 (proporce jsou zachovány na Linuxu), PHP 5.2.17.

    Výsledky po 10 spuštěních pro každé API ve dvou režimech (normální a ukládání do mezipaměti) zprůměrování a zaokrouhlení na desítky. Pro každý běh je vytvořeno pole 50 000 náhodných IP adres a každý algoritmus je prohledáván ve smyčce.

    Návrhy a přání jsou vítány. Hledáme také ty, kteří chtějí pomoci s portováním API do jiných jazyků a vytvářením modulů pro Apache a nginx.

    Pokud se chystáte vytvořit si vlastní statistiku návštěvnosti svého webu, pravděpodobně to budete chtít vědět ze kterých zemí k vám přijíždějí návštěvníci. Zemi návštěvníka zjistíte podle jeho IP adresy, a v tomto článku budeme analyzovat, jak se to dělá PHP.

    Najděte zemi podle IP adresy pomocí PHP možné dvěma způsoby. První způsob je použít nějaké služba WHOIS, odeslání žádosti a získání odpovědi od ní. Druhou možností je vytvoření vlastní tabulky v databázi, kterou bude obsahovat korespondence IP adres a zemí. Klady a zápory první a druhé metody jsou zřejmé, takže se jimi nebudu zdržovat. Druhý způsob implementace závisí na vaší databázi a na tabulce, ve které jsou shody IP adres a zemí. Proto zvážíme první metodu, protože je univerzální, i když samozřejmě nebudete moci tento skript otestovat na místním serveru bez připojení k internetu:

    if($curl = curl_init()) (
    $ip = $_SERVER["REMOTE_ADDR"];
    curl_setopt($curl, CURLOPT_URL, "http://ip-whois.net/ip_geo.php?ip=".$ip);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
    $out = curl_exec($curl);
    $matches = pole();
    $country = preg_match_all("/Country: (.*)/i", $out, $matches);
    print_r($odpovídá);
    curl_close($curl);
    }
    ?>

    Princip ve zkratce: najdeme službu, podíváme se, jak poslat požadavek (jak se jmenují proměnné, jakým způsobem se odesílají), odeslat přes kučera požadavek, obdržíme odpověď, vytáhneme potřebný řádek přes regulární výrazy, vydedukujeme výsledek. Pokud spustíte tento skript, uvidíte název vaší země IP adresa. Nutno však podotknout, že ne všichni IP adresy je možné poznat zemi. Záleží na bázi, kterou konkrétní používá. služba WHOIS. Hned musím říci, že pro otestování tohoto skriptu jej musíte nahrát na vzdálený server, aby nebyl nahrazen IP adresa: 127.0.0.1 , protože to nepůjde, protože pro něj země neexistuje. Nebo stačí nahradit hodnotu proměnné $ip k nějakému jinému IP adresa. Jak vidíte, vše je velmi jednoduché, hlavní věcí je jasně vybrat jeden ze dvou způsobů. Jestli chceš najít zemi podle IP adresy prostřednictvím vaší databáze, pak ji musíte nejprve najít. Je jich poměrně hodně, stačí si je vyhledat na internetu. A pokud jste s používáním spokojeni služba WHOIS a ušetříte zdroje serveru a databázový prostor, pak můžete použít výše uvedený kód a úpravou regulárního výrazu můžete vytáhnout další data, která tato služba produkuje, například město.

    Ahoj všichni!

    Nebudu to říkat často, ale čas od času potřebují vývojáři určit město podle IP v PHP skriptu.

    Rozhodli jste se například usnadnit uživateli zadávání kontaktních údajů při zadávání objednávky v internetovém obchodě. Nebo chcete nastavit jazyk rozhraní webu v závislosti na zemi, ze které návštěvník na váš web přišel.

    Nejčastěji je určení města podle IP v PHP pomocí GeoIP pravděpodobně nutné pro vývojáře různých reklamních sítí, aby uživatelům nabídli cílenou reklamu v závislosti na geografické poloze.

    Zjistit zemi podle IP v PHP skriptu mi trvalo jen jednou, když jsem se rozhodl na stránky nahrát widgety různých sociálních sítí pro uživatele z různých zemí. O tom, proč to nebylo nutné a co se nakonec stalo, napíšu podrobněji v příštím článku.

    Mezitím si povíme, kolik způsobů, jak určit město a zemi podle IP v PHP, existuje a jaké existují možnosti jejich implementace.

    PHP GeoIP - standardní funkce třetích stran

    Konkrétně jsem nazval popis první metody. Faktem je, že v samotném PHP není možné určit město a zemi podle IP adresy - jazyk k tomu nemá potřebné nástroje.
    Ale v oficiální dokumentaci je nápověda, jak to udělat.

    PHP GeoIP je knihovna třetí strany, kterou je třeba zahrnout dodatečně, přestože popis funkcí v ní obsažených je součástí oficiální dokumentace PHP - http://php.net/manual/en/ref.geoip .php

    Motivy PHP vývojářů jsou v zásadě vcelku pochopitelné.

    Za prvé, zahrnutí tohoto modulu do samotného jazykového balíčku vyžaduje velké množství serverových zdrojů.

    Za druhé, GeoIP PHP funguje na základě seznamu IP adres odpovídajících určitým zemím a městům. GeoIP PHP proto vyžaduje neustálou podporu a rozšiřování/modernizaci stávající základny, což by pro vývojáře PHP znamenalo zbytečnou bolest hlavy.

    No a do třetice, určování města podle IP v PHP je v praxi málo používaná funkce.

    V důsledku těchto faktorů je PHP GeoIP rozšířením třetí strany, o jehož podporu a tvorbu API pro integraci na stávajících stránkách se stará MaxMind, odkaz na který je uveden v popisu této knihovny .

    Nebudu popisovat proces instalace na server, protože Sám jsem to v praxi nedělal a internet je v současné době plný manuálů pro instalaci PHP GeoIP na servery Linux i Windows.

    Mohu pouze říci, že tento způsob určování města, země a dalších geografických informací pomocí IP v PHP má dvě významné nevýhody:

    1. Přístup do databáze kompletních informací o IP adresách poskytovaných MaxMind je placený. Částka je navíc kupodivu v dolarech 🙂 Zdarma jsou k dispozici pouze výrazně omezené možnosti - http://dev.maxmind.com/geoip/geoip2/geolite2/
    2. Vzhledem k tomu, že PHP GeoIP je rozšíření třetí strany, bude nutné jej nainstalovat samostatně na server, což při použití sdíleného hostingu může být obtížné. Samozřejmě můžete kontaktovat technickou podporu, ale ne skutečnost, že vám pomohou. Například, když jsem byl požádán o instalaci Sphinx, odmítli.

    Určení města podle IP v PHP pomocí alternativních knihoven

    Dalším způsobem, jak zjistit město podle IP v PHP skriptu, je použití alternativních serverových knihoven a informačních databází pro IP adresy jiné než MaxMind.

    Ale mají stejné nevýhody jako předchozí verze, protože. jsou pouze konkurenty MaxMind. Placený je i přístup k databázím a možnost využívat jejich API. Zdarma můžete získat pouze seznam zemí a měst podle IP, zatímco s placeným tarifem získáte širší seznam dat.

    Jedinou výhodou oproti PHP GeoIP je, že data knihovny jsou integrována v kódu PHP, a nikoli na úrovni serveru, tzn. lze je použít i na sdíleném hostingu.

    Příkladem takové knihovny je služba db-ip.com.

    Mimochodem, mnou zmíněná služba poskytuje nejen vlastní PHP knihovnu pro získávání geodat IP klienty, ale také přístup k informačním databázím podle adres. V zásadě vás tedy nikdo neobtěžuje používat je v PHP GeoIP za účelem využití jeho API, ale přebírat informace z jiných zdrojů.

    No a rozhodně vás nikdo neobtěžuje psát si vlastní analyzátor pro soubory databáze IP adres, abyste z nich sami získávali informace, bez jakýchkoliv oprávnění třetích stran.

    Jak určit město podle IP v PHP online

    No a tady se dostávám k finální metodě, jak zjistit zemi podle IP v PHP a dalších geo informací, kterou jsem sám v praxi používal.

    Spočívá ve využití API online služeb, které umožňují přijímat data podle IP adresy online.

    Rozhodl jsem se takto určit město podle IP v PHP, protože postrádá hlavní nevýhodu předchozích. Jmenovitě je to nejjednodušší na implementaci - nemusíte nic instalovat a konfigurovat na serveru a navíc se na to zeptat technické podpory sdíleného hostingu.

    Abyste získali potřebné informace podle IP, stačí odeslat požadavek na konkrétní URL a zpracovat odpověď.

    Pokud jde o náklady na jejich použití - z velké části jsou také placeny, protože. fungují zpravidla na základě existujících komerčních IP základen. Existují však také bezplatné služby, které poskytují možná tak úplné informace jako komerční, ale lze je přijímat v neomezeném množství.

    Je pravda, že velmi rychle přestanou existovat, kupodivu, protože. je velmi obtížné přežít poskytování takových služeb. Ukázala to moje analýza bezplatných online služeb pro určování měst a zemí podle IP, kterou jsem provedl pro osobní účely. Na mnoha stránkách se mihly, ale při pokusu o jejich použití bylo jasné, že přestaly existovat.

    Díky tomu jsem našel, co jsem potřeboval, o čem se chci s vámi rozhodnout - http://www.geoplugin.com/

    Tato služba umožňuje jak určit město a další informace podle IP na webu služby, tak to udělat z kódu. Dále uvedu příklad určení země podle IP v PHP skriptu pomocí geoplugin.com. kód se provádí pomocí kódu popsaného v článku odkazem.

    "", "město" =>""); if(filter_var($client, FILTER_VALIDATE_IP)) $ip = $klient; elseif(filter_var($forward, FILTER_VALIDATE_IP)) $ip = $forward; else $ip = $vzdálený; $ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip)); if($ip_data && $ip_data->geoplugin_countryName != null) ( $result = $ip_data->geoplugin_countryCode; ) echo $result; ?>

    Jak vidíte, podstatou výše uvedeného kódu je určení IP adresy klienta s přihlédnutím k možnosti připojení přes proxy a odeslání požadavku přes GeoPlugin API s dalším dekódováním a analýzou výsledků.

    V mém příkladu, jak jsem již řekl, bude výsledkem tohoto skriptu kód země klienta webu. Obecně platí, že úplný seznam vrácených parametrů vypadá takto (například jsem se rozhodl vzít IP regionu Novosibirsk Ruské federace):

    ( "geoplugin_request":"195.208.128.3", "geoplugin_status":200, "geoplugin_credit":"Některá z vrácených dat zahrnují data GeoLite vytvořená MaxMind, dostupná z http:\/\/www.maxmind.com<\/a>.", "geoplugin_city":"Novosibirsk", "geoplugin_region":"Novosibirsk", "geoplugin_areaCode":"0", "geoplugin_dmaCode":"0", "geoplugin_countryCode":"RU", "geoplugin_countryName":"Ruská federace ", "geoplugin_continentCode":"EU", "geoplugin_latitude":"55.09", "geoplugin_longitude":"82.6519", "geoplugin_regionCode":"53", "geoplugin_regionName":"Novosibirsk", "geoplugin""RUBCode", "geoplugin_currencySymbol":"rub", "geoplugin_currencySymbol_UTF8":"\u0440\u0443\u0431", "geoplugin_currencyConverter":58.9289)

    Jak vidíte, tato služba využívá již dříve zmíněný MaxMind (parametr geoplugin_credit), ale těžko odhadnout, zda jde o placenou informaci či nikoliv. Na jedné straně odkaz na zdroj naznačuje, že se využívá bezplatný přístup do databáze IP, ale na druhou stranu vidíme nejen zemi a město, ale také spoustu nejrůznějších informací, včetně města , zeměpisné souřadnice (zeměpisná šířka, zeměpisná šířka), aktuální měna a dokonce i její směnný kurz.

    Tuto službu lze tedy nazvat PHP GeoIP online. Jeho jediný rozdíl od serverového protějšku je v tom, že přijímá informace přes IP trochu pomaleji kvůli nedostatku mezipaměti serveru. To ale neznamená, že na samotném serveru GeoPlugin není 😉 Tento nedostatek je tedy spíše symbolický.

    V každém případě si vývojáři GeoPluginu zaslouží potlesk, a to zejména za to, že svůj web ani nezasypali kontextovou reklamou. Tito. Jak vůbec přežívají, není jasné. Jediným způsobem, jak jim říci „děkuji“, je darování na účet PayPal.

    Mimochodem, PHP kód, který jsem uvedl pro určení města podle IP, je univerzální. Můžete jej použít k získání geografických dat pomocí dalších služeb. Jediné, co v něm budete muset změnit, je URL služby API a název požadovaných parametrů, které budete muset získat.

    To je z mé strany vše. Napište svůj názor na článek do komentářů níže a nezapomeňte příspěvek sdílet se svými přáteli na sociálních sítích.

    P.S.: pokud potřebujete webové stránky nebo potřebujete provést změny na stávajících, ale není na to čas a chuť, mohu nabídnout své služby.

    Více než 5 let zkušeností profesionální vývoj webových stránek. Pracovat s PHP, otevřený košík, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Reagovat, Hranatý a další technologie pro vývoj webových aplikací.

    Zkušenosti s vývojem projektů na různých úrovních: vstupní stránky, firemní weby, Online nakupování, CRM, portály. Včetně podpory a rozvoje Projekty s vysokou zátěží. Přihlášky zasílejte e-mailem [e-mail chráněný] .

    V pokračování tématu o IP bude tento článek zvažovat způsoby, jak určit zemi, město a další geo-ino o uživateli podle jeho IP.

    GeoIP jako rozšíření PHP

    Asi nejčastěji používaná knihovna pro určování IP (off. doc na php.net). Není se čemu divit, protože binární databáze + kompilované rozšíření PHP funguje rychleji než všechny ostatní metody.

    Instalace na Ubuntu Server:

    sudo apt-get install php5-geoip

    Po instalaci si stáhněte nejnovější aktualizace databáze IP adres:

    Po těchto krocích je třeba restartovat PHP. To je nezbytné, aby PHP interpret načetl nově nainstalované rozšíření (php5-geoip) a nové základy IP adres.

    Je také nutné pravidelně aktualizovat databázi IP adres:

    sudo wget -N http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz sudo gunzip GeoIP.dat.gz sudo mv GeoIP.dat /usr/share/GeoIP/

    Po aktualizaci je také nutné znovu načíst PHP, abyste mohli použít aktualizovanou databázi IP adres:

    sudo service php5-fpm restart #, pokud používáte NGINX # nebo sudo service apache2 restart #, pokud používáte Apache

    Jakmile je GeoIP nastaven, může být použit v kódu takto:

    GeoIP jako skladatelský balíček

    Tato metoda je téměř identická s GeoIP jako rozšíření PHP, s jedinou výjimkou: nemusíte na server instalovat další rozšíření.

    To je užitečné, pokud nemáte root přístup k serveru a nemůžete nainstalovat rozšíření PHP.

    Nevýhodou této metody je, že je o něco pomalejší než kompilované rozšíření PHP.

    Nejprve je potřeba stáhnout databázi IP adres ve speciálním formátu (.mmdb) z off. a umístěte jej do libovolné složky na serveru, která je vám k dispozici:

    Wget -N http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz gunzip GeoLite2-Country.mmdb.gz mv GeoLite2-Country.mmdb /my-site/data/GeoIP/

    Skladatel vyžaduje geoip2/geoip2:~2.0

    Po těchto dvou jednoduchých krocích jej můžete začít používat ve svých PHP skriptech, například:

    země($_SERVER["REMOTE_ADDR"]); var_dump($geo->země->isoCode); var_dump($geo->země->název);

    Sypex Geo

    Dodává se také jako třída PHP a binární knihovna. Bohužel vypnuto. nemá skladatelský balíček. Ale můžete použít a ne vypnout: https://packagist.org/packages/igi/sypexgeo .

    Tento balíček skladatele je také dobrý, protože umožňuje aktualizovat databázi IP adres při provádění příkazu "composer install".

    Abyste mohli nainstalovat tento balíček skladatele a nastavit automatickou aktualizaci databáze IP adres, musíte do souboru skladatel.json zapsat následující nastavení:

    ( "require-dev": ( "igi/sypexgeo": "@dev" ), "scripts": ( "post-install-cmd": [ "IgI\\SypexGeo\\Composer::installDatabases" ] ), " extra": ( "sypexgeo_remote": "https://sypexgeo.net/files/SxGeoCountry.zip", "sypexgeo_local": "/var/www/at0m1x.dev/test/data/SxGeo.dat" ) )

    Věnujte pozornost následujícímu nastavení:

    • připojení balíčku musí být umístěno v sekci require-dev
    • při připojování balíčku musíte zadat úroveň stability @dev
    • v sekci sypexgeo_remote můžete místo SxGeoCountry.zip zadat SxGeoCity_utf8.zip
    • v parametru sypexgeo_local musíte zadat svou cestu ke složce

    Instalace skladatele

    Po instalaci samotné knihovny se z vypnutého stavu aktualizuje i databáze IP adres. místo.

    Příklad použití v kódu PHP:

    getCountry("89.163.220.14"));

    Kromě použití balíčku skladatel můžete také použít REST API tohoto projektu, například: http://api.sypexgeo.net/json/89.163.220.14 Přečtěte si o online službách pro určování geografických informací níže v tomto článku.

    IP2UMÍSTĚNÍ

    Další skladatelská knihovna ze zahraničí.

    Instalace:

    Skladatel vyžaduje ip2location/ip2location-php

    Při instalaci tohoto balíčku skladatele a také při jeho aktualizaci dojde také k aktualizaci databáze IP adres, která se nachází na následující cestě:

    /vendor/ip2location/ip2location-php/databases/IP2LOCATION-LITE-DB1.BIN

    Používání:

    lookup("89.163.220.14", \IP2Location\Database::ALL); echo"

    "; echo "Číslo IP: " . $records["ipNumber"] . "\n"; echo "Verze IP: " . $records["ipVersion"] . "\n"; echo "IP adresa: " . $ záznamy["ipAddress"] . "\n"; echo "Kód země: " . $records["countryCode"] . "\n"; echo "Název země: " . $records["countryName"] . "\n "; echo"
    ";

    TabGeo

    Objevil se relativně nedávno, první verze skladatelského balíčku byla zveřejněna 27. září 2015.

    Umístí se jako nejrychlejší ve srovnání s konkurenty, jako jsou: GeoIP a Sypex Geo. Ale rychlosti je dosaženo díky malé velikosti základny, v důsledku čehož tato knihovna určuje pouze kód země.

    Je distribuován jako skladatelský balíček + binární databáze ve vlastním formátu.

    K instalaci této knihovny stačí zahrnout balíček skladatel:

    Skladatel vyžaduje tabgeo/country

    Tím se nainstaluje jak knihovna PHP, tak samotná databáze:

    Příklad použití v PHP skriptu:

    Stojí za zmínku, že TabGeo vám umožňuje získat pouze dvoumístný kód země ve formátu ISO 3166-1 alpha-2. Pokud potřebujete něco víc, například definovat region, město, časové pásmo atd., pak musíte použít stejnou GeoIP, např. umožňuje vám to vše definovat.

    Online služby pro geografické cílení

    Případně můžete využít speciální online služby. Princip jejich práce je jednoduchý: předáme GET jako IP parametr a jako odpověď obdržíme geoinformace ve formátu JSON nebo XML.

    Výhodou této metody je, že ji lze použít nejen na straně PHP, ale například i na straně JavaScriptu.

    Existují však také významné nevýhody:

    • nefunguje tak rychle jako knihovna PHP;
    • nemůžete aktualizovat databázi IP adres;
    • váš server může být blokován pro časté hovory.

    Zde jsou některé z těchto online služeb:

    Závěr

    Téměř všechny výše uvedené knihovny poskytují dva druhy databází IP adres:

    • light, pouze se seznamem zemí, zpravidla název obsahuje Země;
    • úplnější, který kromě zemí obsahuje i informace o velkých městech, zpravidla název obsahuje Město a váží více;

    Kompletnější databáze IP adres s městy bude samozřejmě fungovat o něco pomaleji, protože je objemově větší.

    Nejsprávnější je používat GeoIP jako rozšíření PHP. Protože bude fungovat vždy a rychle. Také můžete vždy aktualizovat databázi IP adres.

    Pokud není možné nainstalovat GeoIP jako rozšíření PHP, můžete použít některý ze skladatelských balíčků: GeoIP, Sypex Geo, IP2LOCATION nebo TabGeo.

    Pokud použití balíčku skladatele z nějakého důvodu není možné, zbývá použít online služby. Rozhodně ale musíte požadavky na tyto služby ukládat do své databáze. Ukládání do mezipaměti je nezbytné, aby se stejný požadavek neposílal mnohokrát. Geoinformace pro zájmovou IP stačí jednou získat prostřednictvím online služby, poté je uložit do své databáze a poté je z databáze převzít. Snížíte tak počet požadavků na online službu a snížíte pravděpodobnost, že vás online služba zablokuje pro více požadavků.

    Stojí za zmínku, že téměř všechny výše uvedené knihovny mají bezplatné a placené verze. V placených verzích budete mít přístup k více geodatům než v těch bezplatných.

    Zobrazte město návštěvníka, abyste zlepšili míru konverze obchodu. Připravený kód pro vložení kdekoli na webu s městem, regionem a zemí. Naházel jsem spoustu skriptů, ale tento se ukázal jako nejjednodušší a nejúčinnější! Použil jsem to při vytváření stránek www.mzm-market.ru , kde jsou výstupy skriptu "doručit ______"

    Vložte následující kód do index.tpl (nebo na doručovací stránku) na libovolné místo:




    Výstup se provádí pomocí:

    // země, město, region.
    geolocation.country, geolocation.city, geolocation.region

    Tento příspěvek chci trochu doplnit (upraveno 18.02.2017).

    Při použití výše uvedeného skriptu v mnoha městech a prohlížečích se nic nezobrazovalo a po dlouhém hledání jsem našel asi nejefektivnější skript pro určení země, regionu, města přes Yandex API. Testoval jsem to přes své klienty, kteří se nacházejí téměř po celém Rusku i v zahraničí, a tento skript se osvědčil! Zde je snímek obrazovky mého klienta:

    Chápete, že vše bylo jasně definováno! No nebudu vás mučit psaním a uvedu příklad!

    js Určení země, regionu, města prostřednictvím rozhraní Yandex API

    Stačí vložit tento kód mezi značky



    A tento kód na správném místě na vaší stránce:

    Vaše země: ... bude určeno...

    Vaše město: ... určeno podle...

    Váš region: ... určen podle...

    Demonstrace

    Vaše země: ... odhodlaný...

    Tvoje město: ... odhodlaný...

    Váš region: ... odhodlaný...

    Skript funguje bez problémů, ale je možné, že pro ty, kteří jsou v malých vesnicích, bude s největší pravděpodobností špatně určeno město, ale bude určeno město vašeho poskytovatele internetu.