Sivustosi kävijän IP-osoitteen perusteella voit tietää hänestä melko paljon - maan, kaupungin, Internet-palveluntarjoajan nimen ja sähköpostiosoitteen jne. Pääarvo on kuitenkin se, että IP-osoite voi toimia vierailija-tunnuksena palvelinpuolen komentosarjoille. Alla on kuvattu, kuinka voit määrittää IP-osoitteen PHP: llä.
Se on välttämätöntä
Perustiedot PHP: stä
Ohjeet
Vaihe 1
Jos haluat purkaa IP-osoitteen selaimen pyyntöpalvelimelle lähetetyistä otsikoista, käytä getenv-toimintoa. Se lukee sille määritetyt arvot ympäristömuuttujista. Muuttujaa nimeltä REMOTE_ADDR käytetään vierailijan IP-osoitteen tallentamiseen. Asiakas voi kuitenkin käyttää välityspalvelinta, jolloin muuttuja sisältää osoitteensa eikä haluamaasi. Voit selvittää, että surffaaja käyttää väli-IP: tä katsomalla ympäristömuuttujaa nimeltä HTTP_VIA. Kaikki ketjuun osallistuvien välityspalvelinten osoitteet sijoitetaan siihen pilkuilla erotettuna. Välipalvelinten on sijoitettava kävijän osoite muuttujaan nimeltä HTTP_X_FORWARDED_FOR, mutta tämä riippuu täysin välityspalvelinasetuksista. Tämä tarkoittaa, että kattamaan mahdollisimman monta mahdollisuutta määrittää IP-osoite, sinun on tarkistettava vähintään kolmen muuttujan sisältö: REMOTE_ADDR, HTTP_X_FORWARDED_FOR ja mieluiten
Vaihe 2
Voit yhdistää kaikkien kolmen muuttujan tarkistamisen yhdeksi PHP-koodiriviksi esimerkiksi seuraavasti:
$ ipAddr = getenv ('HTTP_CLIENT_IP') tai $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') tai $ ipAddr = getenv ('REMOTE_ADDR');
Saatuaan IP-osoitteen arvon tällä tavalla on suositeltavaa poistaa se mahdollisista vääristymistä ja tarpeettomista merkeistä. Voit käyttää säännöllistä lauseketta tähän:
$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
Vaihe 3
Molempien koodirivien yhdistäminen yhdeksi toiminnoksi on jäljellä:
funktio getIP () {
$ ipAddr = getenv ('HTTP_CLIENT_IP') tai $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') tai $ ipAddr = getenv ('REMOTE_ADDR');
palaa leikkaus (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
}