Pomoću IP adrese posjetioca vaše stranice možete saznati prilično puno o njemu - zemlju, grad, ime i adresu e-pošte dobavljača Interneta itd. Ali glavna vrijednost je da IP može poslužiti kao ID posjetitelja za skripte na strani poslužitelja. Ispod je opisano kako možete odrediti IP adresu pomoću PHP-a.
Neophodno je
Osnovno znanje PHP-a
Instrukcije
Korak 1
Da biste izdvojili IP adresu iz zaglavlja poslanih serveru zahtjeva pretraživača, koristite funkciju getenv. Čita vrijednosti koje su mu specificirane iz varijabli okoline. Varijabla pod nazivom REMOTE_ADDR koristi se za pohranu IP adrese posjetitelja. Međutim, klijent može koristiti proxy server, u tom slučaju će varijabla sadržavati svoju adresu, a ne onu koju želite. Možete saznati da web surfer koristi posredni IP promatrajući varijablu okruženja nazvanu HTTP_VIA. Sve adrese proxy servera uključenih u lanac smještene su u njega, odvojene zarezima. Privremeni serveri moraju adresu posjetitelja smjestiti u varijablu koja se zove HTTP_X_FORWARDED_FOR, ali to u potpunosti ovisi o postavkama proxyja. To znači da da biste pokrili što više mogućnosti određivanja IP adrese, morate provjeriti sadržaj najmanje tri varijable: REMOTE_ADDR, HTTP_X_FORWARDED_FOR i po mogućnosti
Korak 2
Možete kombinirati provjeru sve tri varijable u jedan red PHP koda, na primjer, ovako:
$ ipAddr = getenv ('HTTP_CLIENT_IP') ili $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') ili $ ipAddr = getenv ('REMOTE_ADDR');
Dobivši vrijednost IP adrese na ovaj način, poželjno ju je očistiti od mogućih izobličenja i nepotrebnih znakova. Za ovo možete koristiti regularni izraz:
$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
Korak 3
Preostalo je kombinirati oba retka koda u jednu funkciju:
funkcija getIP () {
$ ipAddr = getenv ('HTTP_CLIENT_IP') ili $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') ili $ ipAddr = getenv ('REMOTE_ADDR');
vrati trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
}