Mijozning Ipini Qanday Topish Mumkin

Mundarija:

Mijozning Ipini Qanday Topish Mumkin
Mijozning Ipini Qanday Topish Mumkin

Video: Mijozning Ipini Qanday Topish Mumkin

Video: Mijozning Ipini Qanday Topish Mumkin
Video: Mijozlarni sonini qanday oshirish mumkin? 2024, May
Anonim

Sizning saytingizga tashrif buyuruvchining IP-manzili orqali siz u haqida juda ko'p narsalarni bilib olishingiz mumkin - mamlakat, shahar, Internet-provayderning ismi va elektron pochta manzili va boshqalar. Ammo asosiy qiymat shundaki, IP server tomonidagi skriptlar uchun tashrif buyuruvchi identifikatori sifatida xizmat qilishi mumkin. Quyida PHP yordamida qanday qilib IP-manzilni aniqlash mumkinligi tasvirlangan.

Mijozning ipini qanday topish mumkin
Mijozning ipini qanday topish mumkin

Bu zarur

PHP haqida asosiy ma'lumotlar

Ko'rsatmalar

1-qadam

IP-manzilni brauzer so'rovi serveriga yuborilgan sarlavhalardan ajratib olish uchun getenv funktsiyasidan foydalaning. Unga belgilangan qiymatlarni atrof-muhit o'zgaruvchilaridan o'qiydi. REMOTE_ADDR nomli o'zgaruvchi tashrif buyuruvchining IP-manzilini saqlash uchun ishlatiladi. Biroq, mijoz proksi-serverdan foydalanishi mumkin, bu holda o'zgaruvchida siz xohlagan manzil emas, balki uning manzili bo'ladi. Veb-sörfçü oraliq IP-dan foydalanayotganligini HTTP_VIA deb nomlangan muhit o'zgaruvchisiga qarab bilib olishingiz mumkin. Unda zanjirga aloqador proksi-serverlarning barcha manzillari vergul bilan ajratilgan holda joylashtirilgan. O'rta serverlar tashrif buyuruvchining manzilini HTTP_X_FORWARDED_FOR nomli o'zgaruvchiga joylashtirishi kerak, ammo bu butunlay proksi-server sozlamalariga bog'liq. Bu shuni anglatadiki, IP-manzilni iloji boricha ko'proq aniqlash uchun siz kamida uchta o'zgaruvchining tarkibini tekshirishingiz kerak: REMOTE_ADDR, HTTP_X_FORWARDED_FOR va afzal

2-qadam

Siz uchta o'zgaruvchini tekshirishni bir qatorda PHP kodining bir qatoriga qo'shishingiz mumkin, masalan:

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

IP-manzilning qiymatini shu tarzda olganingizdan so'ng, uni mumkin bo'lgan buzilishlardan va keraksiz belgilardan tozalash tavsiya etiladi. Buning uchun odatiy iboradan foydalanishingiz mumkin:

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

3-qadam

Kodning ikkala satrini bitta funktsiyaga birlashtirish qoladi:

funktsiyasi getIP () {

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

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

}

Tavsiya: