Nga adresa IP e një vizitori në faqen tuaj, ju mund të mësoni shumë rreth tij - vendi, qyteti, emri dhe adresa e postës elektronike të ofruesit të internetit, etj. Por vlera kryesore është se IP mund të shërbejë si një ID e vizitorit për skriptet nga ana e serverit. Më poshtë përshkruhet se si mund të përcaktoni adresën IP duke përdorur PHP.
Është e nevojshme
Njohuri themelore të PHP
Udhëzimet
Hapi 1
Për të nxjerrë adresën IP nga titujt e dërguar në serverin e kërkesës së shfletuesit, përdorni funksionin getenv. Lexon vlerat e specifikuara për të nga ndryshoret e mjedisit. Një variabël me emrin REMOTE_ADDR përdoret për të ruajtur adresën IP të vizitorit. Sidoqoftë, klienti mund të përdorë një server proxy, në këtë rast variabla do të përmbajë adresën e saj, dhe jo atë që ju dëshironi. Ju mund të zbuloni se përdoruesi i faqes në internet po përdor një IP të ndërmjetme duke parë ndryshoren e mjedisit të quajtur HTTP_VIA. Të gjitha adresat e serverave të përfaqësimit të përfshirë në zinxhir vendosen në të, të ndara me presje. Serverët e ndërmjetëm duhet të vendosin adresën e vizitorit në një variabël të quajtur HTTP_X_FORWARDED_FOR, por kjo varet tërësisht nga cilësimet e përfaqësuesit. Kjo do të thotë që për të mbuluar sa më shumë mundësi të përcaktimit të adresës IP të jetë e mundur, duhet të kontrolloni përmbajtjen e të paktën tre variablave: REMOTE_ADDR, HTTP_X_FORWARDED_FOR dhe mundësisht
Hapi 2
Ju mund të kombinoni duke kontrolluar të tre variablat në një linjë të kodit PHP, për shembull, si kjo:
$ ipAddr = getenv ('HTTP_CLIENT_IP') ose $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') ose $ ipAddr = getenv ('REMOTE_ADDR');
Pasi të keni marrë vlerën e adresës IP në këtë mënyrë, këshillohet që ta pastroni atë nga shtrembërimet e mundshme dhe karakteret e panevojshme. Ju mund të përdorni një shprehje të rregullt për këtë:
$ ipAddr = zbukurim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
Hapi 3
Mbetet të kombinohen të dy linjat e kodit në një funksion:
funksioni getIP () {
$ ipAddr = getenv ('HTTP_CLIENT_IP') ose $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') ose $ ipAddr = getenv ('REMOTE_ADDR');
zbritje kthyese (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
}