Visbiežāk viņa identificēšanai tiek izmantota vietnes apmeklētāja IP adrese. Bet papildus tam, izmantojot IP, jūs varat iegūt daudz papildu informācijas par apmeklētāju - piemēram, uzzināt viņa interneta pakalpojumu sniedzēju un ģeogrāfisko atrašanās vietu. Praksē IP adreses no pārlūkprogrammas sūtītajām pieprasījumu galvenēm visbiežāk izmanto servera puses PHP skriptus.
Tas ir nepieciešams
PHP pamatzināšanas
Instrukcijas
1. solis
Izmantojiet PHP iebūvēto getenv funkciju, lai lasītu IP adreses no superglobālās vides mainīgā masīva. Vienkāršākajā gadījumā būs pietiekami, lai izlasītu mainīgo ar nosaukumu REMOTE_ADDR. Attiecīgais PHP koda gabals varētu izskatīties šādi: $ userIP = getenv ('REMOTE_ADDR');
2. solis
Papildus pieprasījumā nosūtītajam mainīgajam REMOTE_ADDR pārbaudiet mainīgos HTTP_VIA un HTTP_X_FORWARDED_FOR. Ja apmeklētājs izmanto starpniekserveri, starpposma adrese jāreģistrē abos mainīgajos - gan HTTP_VIA, gan REMOTE_ADDR. Šajā gadījumā jūs varat mēģināt uzzināt patieso apmeklētāja IP, izmantojot HTTP_X_FORWARDED_FOR - starpniekserverim tajā jāievieto sākotnējā adrese. Tomēr tas ne vienmēr tiek darīts, un lietotājam ir iespēja izvēlēties "necaurspīdīgu" starpniekserveri, kas nenosūta pieprasījuma nosūtītāja apmeklētāja sākotnējo IP. Jebkurā gadījumā jums jāizmanto pēc iespējas vairāk veidu, kā iegūt sākotnējo IP adresi savā kodā, pievienojot pārbaudi mainīgajam
3. solis
Apvienojiet vienā PHP koda rindā secīgu trīs vides mainīgo pārbaudi, kas var saturēt apmeklētāja sākotnējo IP adresi. To var izdarīt, piemēram, šādi: $ userIP = getenv ('HTTP_CLIENT_IP') VAI $ userIP = getenv ('HTTP_X_FORWARDED_FOR') VAI $ userIP = getenv ('REMOTE_ADDR');
4. solis
Noņemt papildu rakstzīmes un citus atkritumus no iegūtās IP vērtības, kas var nonākt vides mainīgajos. To var izdarīt, piemēram, izmantojot iebūvētās PHP funkcijas TRIM un preg_replace: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
5. solis
Apvienojiet visu kodu pielāgotā funkcijā, lai jūs varētu uz to atsaukties, nevis atkārtot pārbaudes un tīrīšanas rindas atkārtoti dažādās PHP skriptu daļās. Piemēram, šādi: FUNCTION getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') VAI $ userIP = getenv ('HTTP_X_FORWARDED_FOR') VAI $ userIP = getenv ('REMOTE_ADDR');
RETURN TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
}