Më shpesh, adresa IP e një vizitori të faqes përdoret për ta identifikuar atë. Por përveç kësaj, duke përdorur IP, ju mund të merrni shumë informacione shtesë për vizitorin - për shembull, gjeni ofruesin e tij të Internetit dhe vendndodhjen gjeografike. Në praktikë, skriptet PHP nga ana e serverit përdoren më shpesh për të nxjerrë adresat IP nga kokat e kërkesave të dërguara nga shfletuesi.
Është e nevojshme
Njohuri themelore të PHP
Udhëzimet
Hapi 1
Përdorni funksionin e integruar getenv të PHP për të lexuar adresat IP nga vargu i ndryshueshëm i mjedisit superglobal. Në rastin më të thjeshtë, do të jetë e mjaftueshme për të lexuar ndryshoren e quajtur REMOTE_ADDR. Pjesa përkatëse e kodit PHP mund të duket kështu: $ userIP = getenv ('REMOTE_ADDR');
Hapi 2
Përveç ndryshores REMOTE_ADDR të dërguar në kërkesë, kontrolloni ndryshoret HTTP_VIA dhe HTTP_X_FORWARDED_FOR. Nëse vizitori përdor një server proxy, atëherë adresa e ndërmjetme duhet të regjistrohet në të dy ndryshoret - si në HTTP_VIA ashtu edhe në REMOTE_ADDR. Në këtë rast, mund të përpiqeni të zbuloni IP-në e vërtetë të vizitorit përmes HTTP_X_FORWARDED_FOR - serveri i përfaqësimit duhet të vendosë adresën origjinale në të. Sidoqoftë, kjo nuk është bërë gjithmonë dhe përdoruesi ka mundësinë të zgjedhë një server proxy "të paqartë" që nuk transmeton IP origjinale të vizitorit që dërgoi kërkesën. Në çdo rast, duhet të përdorni sa më shumë mënyra të jetë e mundur për të marrë adresën IP origjinale në kodin tuaj duke shtuar një kontroll për ndryshoren
Hapi 3
Bashkoni në një rresht të kodit PHP një kontroll vijues të tre ndryshoreve të mjedisit, të cilat mund të përmbajnë adresën IP origjinale të vizitorit. Kjo mund të bëhet, për shembull, si kjo: $ userIP = getenv ('HTTP_CLIENT_IP') OSE $ userIP = getenv ('HTTP_X_FORWARDED_FOR') OSE $ userIP = getenv ('REMOTE_ADDR');
Hapi 4
Hiqni karakteret shtesë dhe "mbeturinat" e tjera nga vlera e rezultatit IP që mund të futet në variablat e mjedisit. Kjo mund të bëhet, për shembull, duke përdorur funksionet e integruara PHP TRIM dhe preg_replace: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
Hapi 5
Kombinoni të gjithë kodin në një funksion të personalizuar në mënyrë që të mund t'i referoheni atij në vend që të përsërisni linjat e kontrollit dhe pastrimit pa pushim në pjesë të ndryshme të skenareve tuaja PHP. Për shembull, si kjo: FUNCTION getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') OSE $ userIP = getenv ('HTTP_X_FORWARDED_FOR') OSE $ userIP = getenv ('REMOTE_ADDR');
KTHIMI TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
}