Kako Saznati Klijentov Ip

Sadržaj:

Kako Saznati Klijentov Ip
Kako Saznati Klijentov Ip

Video: Kako Saznati Klijentov Ip

Video: Kako Saznati Klijentov Ip
Video: Kako saznati neciju IP adresu 2024, Novembar
Anonim

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.

Kako saznati klijentov ip
Kako saznati klijentov ip

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));

}

Preporučuje se: