Знайте страната от IP в PHP
Знайте страната от IP в PHP
В този пост искам да пиша, колкото е възможно с помощта на PHP посетител за идентифициране на държавата на своето IP. Съвсем наскоро, за първи път пое тази функция на един от проектите, и, както се оказа, че има много начини, но ние ще изберем най-рационалното и бързо.
Сега, работа и бърз начин
Тези, които ни предлага MaxMind. Те са там, само три, просто и не много бързо, много бързо, но е трудно да се инсталира, и че някъде между двете. Ще разгледаме първия и последния ден. Лично за себе си, аз избрах последния, и не е трудно да се инсталира и работи доста бързо. Що се отнася до второто, се предполага, че най-бързо, тъй като той е бил твърде gemorno да инсталирате на моя сървър хостинг компании, така че PHP е компилиран ... С една дума, той не дойде при мен, и че тя ще работи по-бързо от третата силно съмнение.
Първият метод е обичайната PHP модула, тя се състои от един сценарий и база данни, която искате да изтеглите и актуализиране на връзката. Изтеглете модула оттук. Ние трябва само geoip.inc. Копирайте и geoip.inc GeoIP.dat GeoIP в папката, и папката хвърля в схемата на сайта. Сега в сценария на сайта, за да се научат да правят посетителят абсолютно не усложнява prodtseduru:
включват ( «geoip.inc»);
$ Ip = $ _SERVER [ 'REMOTE_ADDR "];
$ Gi = geoip_open ( «/ ЮЕсАр / местни / акции / GeoIP / GeoIP.dat», GEOIP_STANDARD);
$ COUNTRY_NAME = geoip_country_name_by_addr ($ GI, $ IP);
Такъв метод е по-бърз от SQL заявки, но има начин да се още по-бързо - модул за Apache mod_geoip. Този модул ще определи страната и ще добави в масива $ _SERVER две необходими променливите на: GEOIP_COUNTRY_NAME и GEOIP_COUNTRY_CODE. За разлика от първия, този метод изисква създаване на допълнителни модули и затова не е подходящ за споделен хостинг. Първата стъпка е да инсталирате GeoIP C библиотека. Изтеглете най-новата версия тук. Тогава razarhiviruem и го качете на сървъра, се свържете със сървъра и Shelom направи команда:
CD / път към папка инжектира
./ конфигуриране
правя
направи проверка
правят инсталиране
След това изтеглете модула за себе си Apache mod_geoip от тази страница. Моля, имайте предвид, че за първото и второто различни Apache модули. Първо Apache дори не искам да си спомням, да ви кажа как да настроя втория.
Ние разглеждаме phpinfo ред Loaded модули. ако има mod_geoip. тогава всичко е инсталиран правилно и модулът работи. Сега, в името на PHP скрипт на страната и нейния код, ще се съхранява в променлива $ _SERVER на [ 'GEOIP_COUNTRY_NAME'] и $ _SERVER [ 'GEOIP_COUNTRY_CODE']. Ако не са, можете да опитате този $ user_country_name = apache_note ( «GEOIP_COUNTRY_NAME»); ,