Po naslovu IP obiskovalca vašega spletnega mesta lahko o njem izveste precej veliko - državo, mesto, ime in e-poštni naslov ponudnika interneta itd. Toda glavna vrednost je, da lahko IP služi kot ID obiskovalca za skripte na strani strežnika. Spodaj je opisano, kako lahko z uporabo PHP določite naslov IP.
Potrebno je
Osnovno znanje PHP
Navodila
Korak 1
Če želite iz naslovov, poslanih strežniku zahtev brskalnika, izvleči naslov IP, uporabite funkcijo getenv. Vrednosti, ki so mu določene, bere iz spremenljivk okolja. Spremenljivka z imenom REMOTE_ADDR se uporablja za shranjevanje naslova IP obiskovalca. Vendar lahko odjemalec uporabi strežnik proxy, v tem primeru bo spremenljivka vsebovala svoj naslov in ne želenega. Ugotovite lahko, da spletni deskar uporablja vmesni IP, tako da pogledate spremenljivko okolja, imenovano HTTP_VIA. Vanj so umeščeni vsi naslovi posredniških strežnikov, vključenih v verigo, ločeni z vejicami. Vmesni strežniki morajo naslov obiskovalca postaviti v spremenljivko z imenom HTTP_X_FORWARDED_FOR, vendar je to v celoti odvisno od nastavitev proxyja. To pomeni, da morate zajeti čim več možnosti določanja naslova IP, preveriti vsebino vsaj treh spremenljivk: REMOTE_ADDR, HTTP_X_FORWARDED_FOR in po možnosti
2. korak
Preverjanje vseh treh spremenljivk lahko združite v eno vrstico kode PHP, na primer tako:
$ ipAddr = getenv ('HTTP_CLIENT_IP') ali $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') ali $ ipAddr = getenv ('REMOTE_ADDR');
Ko smo na ta način dobili vrednost naslova IP, je priporočljivo, da ga očistimo pred morebitnimi izkrivljanji in nepotrebnimi znaki. Za to lahko uporabite regularni izraz:
$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
3. korak
Še vedno je treba združiti obe vrstici kode v eno funkcijo:
funkcija getIP () {
$ ipAddr = getenv ('HTTP_CLIENT_IP') ali $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') ali $ ipAddr = getenv ('REMOTE_ADDR');
vrni trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
}