Cunoaște țara de ip în php

Cunoaște țara prin IP în PHP

Cunoaște țara de ip în php

În acest post vreau să scrie cât mai mult posibil, folosind vizitator php pentru a identifica țara de IP sale. Cel mai recent, am luat prima dată această funcție pe unul dintre proiectele și, după cum sa dovedit, există mai multe moduri, dar vom alege cel mai rațional și rapid.

Acum, locuri de muncă și mod rapid

Cei care ne oferă MaxMind. Ei sunt acolo doar trei, simplu și nu foarte rapid, foarte rapid, dar dificil de instalat, și că, undeva între cele două. Ne vom uita la prima și ultima. Personal, pentru mine, am ales aceasta din urmă, și nu este dificil de instalat, și funcționează destul de repede. În ceea ce privește al doilea, se presupune că cel mai rapid, pentru că el a fost prea gemorno pentru a instala pe serverul de hosting companiile mele, astfel încât PHP este compilat ... pe scurt, el nu a venit la mine, și că va lucra mai repede decât a treia este extrem de îndoială.

Prima metodă este de obicei modulul PHP, acesta constă dintr-un singur script și baza de date pe care doriți să descărcați și să actualizeze link-ul. Descărcați modulul aici. Avem nevoie doar de geoip.inc. Copiați și geoip.inc GeoIP.dat GeoIP în dosarul, iar dosarul aruncă în site-ul rădăcină. Acum, în script-ul site-ul, să învețe să facă vizitatorul prodtseduru absolut nu complicat:

includ ( «geoip.inc»);
$ Ip = $ _SERVER [ 'REMOTE_ADDR'];
$ Gi = geoip_open ( «/ usr / local / share / GeoIP / GeoIP.dat», GEOIP_STANDARD);
$ COUNTRY_NAME = geoip_country_name_by_addr ($ Gi, $ ip);

O astfel de metodă este mai rapidă decât interogări SQL, dar există o modalitate de a chiar mai repede - un modul pentru mod_geoip Apache. Acest modul va determina țara și va adăuga la matrice $ _SERVER două variabile necesare: GEOIP_COUNTRY_NAME și GEOIP_COUNTRY_CODE. Spre deosebire de prima, această metodă necesită stabilirea unor module suplimentare, și, prin urmare, nu este potrivit pentru shared hosting. Primul pas este de a instala GeoIP C Library. Descărcați cea mai recentă versiune de aici. Apoi razarhiviruem și încărcați la server, conectați la server și Shelom face comanda:

cd / calea către directorul injectat
./ configure
face
face cec
make install

Apoi, descărcați modulul Apache pentru sine mod_geoip din această pagină. Vă rugăm să rețineți că, pentru prima și a doua module Apache diferite. În primul rând apache nici nu a vrut să-și amintească, să vă spun cum am stabilit al doilea.

Ne uităm la rând phpinfo Module încărcate. dacă există mod_geoip. atunci totul este instalat corect și modulul este de lucru. Acum, în numele script PHP al țării și codul său va fi stocat în variabila $ _SERVER [ „GEOIP_COUNTRY_NAME“] și $ _SERVER [ „GEOIP_COUNTRY_CODE“]. Dacă acestea nu sunt, puteți încerca această $ user_country_name = apache_note ( «GEOIP_COUNTRY_NAME»); .

înregistrări similare