Kā Uzzināt Klienta Ip

Satura rādītājs:

Kā Uzzināt Klienta Ip
Kā Uzzināt Klienta Ip

Video: Kā Uzzināt Klienta Ip

Video: Kā Uzzināt Klienta Ip
Video: ПодыграйКа | Стивен украл приставку?..| Мультфильмы для детей 2024, Maijs
Anonim

Pēc savas vietnes apmeklētāja IP adreses jūs varat uzzināt par viņu diezgan daudz - valsti, pilsētu, interneta nodrošinātāja vārdu un e-pasta adresi utt. Bet galvenā vērtība ir tā, ka IP var kalpot kā servera puses skriptu apmeklētāja ID. Zemāk ir aprakstīts, kā jūs varat noteikt IP adresi, izmantojot PHP.

Kā uzzināt klienta ip
Kā uzzināt klienta ip

Tas ir nepieciešams

PHP pamatzināšanas

Instrukcijas

1. solis

Lai izgūtu IP adresi no galvenēm, kas nosūtītas pārlūkprogrammas pieprasījumu serverim, izmantojiet funkciju getenv. Tas nolasa vērtības, kas tai norādītas no vides mainīgajiem. Apmeklētāja IP adreses glabāšanai tiek izmantots mainīgais ar nosaukumu REMOTE_ADDR. Tomēr klients var izmantot starpniekserveri, tādā gadījumā mainīgajā būs tā adrese, nevis tā, kuru vēlaties. Jūs varat uzzināt, ka tīmekļa sērfotājs izmanto starpposma IP, apskatot vides mainīgo ar nosaukumu HTTP_VIA. Tajā tiek ievietotas visas ķēdē iesaistīto starpniekserveru adreses, atdalot tos ar komatiem. Starpniekoserveriem apmeklētāja adrese jāievieto mainīgajā ar nosaukumu HTTP_X_FORWARDED_FOR, taču tas pilnībā atkarīgs no starpniekservera iestatījumiem. Tas nozīmē, ka, lai aptvertu pēc iespējas vairāk iespēju noteikt IP adresi, jums jāpārbauda vismaz trīs mainīgo saturs: REMOTE_ADDR, HTTP_X_FORWARDED_FOR un vēlams

2. solis

Visu trīs mainīgo pārbaudi varat apvienot vienā PHP koda rindiņā, piemēram, šādi:

$ ipAddr = getenv ('HTTP_CLIENT_IP') vai $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') vai $ ipAddr = getenv ('REMOTE_ADDR');

Šādā veidā iegūstot IP adreses vērtību, ieteicams to notīrīt no iespējamiem sagrozījumiem un nevajadzīgām rakstzīmēm. Šim nolūkam varat izmantot regulāru izteiksmi:

$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

3. solis

Atliek abas koda rindas apvienot vienā funkcijā:

funkcija getIP () {

$ ipAddr = getenv ('HTTP_CLIENT_IP') vai $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') vai $ ipAddr = getenv ('REMOTE_ADDR');

atgriešanās apdare (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

}

Ieteicams: