Müştərinin Ipini Necə Tapmaq Olar

Mündəricat:

Müştərinin Ipini Necə Tapmaq Olar
Müştərinin Ipini Necə Tapmaq Olar

Video: Müştərinin Ipini Necə Tapmaq Olar

Video: Müştərinin Ipini Necə Tapmaq Olar
Video: İtmiş və ya oğurlanmış mobil Android telefonunu necə tapmaq olar? 2024, Noyabr
Anonim

Saytınıza gələn bir ziyarətçinin IP ünvanı ilə onun haqqında çox şey öyrənə bilərsiniz - ölkə, şəhər, İnternet provayderinin adı və e-poçt ünvanı və s. Ancaq əsas dəyər, IP-nin server tərəfindəki skriptlər üçün ziyarətçi kimliyi rolunu oynaya bilməsidir. Aşağıda PHP-dən istifadə edərək IP ünvanını necə təyin edə biləcəyiniz izah olunur.

Müştərinin ipini necə tapmaq olar
Müştərinin ipini necə tapmaq olar

Vacibdir

PHP haqqında əsas biliklər

Təlimat

Addım 1

IP ünvanını brauzer tələbi serverinə göndərilən başlıqlardan çıxarmaq üçün getenv funksiyasından istifadə edin. Ətraf mühit dəyişənlərindən ona göstərilən dəyərləri oxuyur. Ziyarətçinin IP ünvanını saxlamaq üçün REMOTE_ADDR adlı dəyişən istifadə olunur. Bununla birlikdə, müştəri bir proxy server istifadə edə bilər, bu halda dəyişən istədiyiniz deyil, ünvanını ehtiva edəcəkdir. Veb sörfçünün HTTP_VIA adlı mühit dəyişəninə baxaraq orta IP istifadə etdiyini öyrənə bilərsiniz. Zəncirdə iştirak edən proxy serverlərin bütün ünvanları vergüllə ayrılmış şəkildə yerləşdirilir. Aralıq serverlər ziyarətçinin ünvanını HTTP_X_FORWARDED_FOR adlı dəyişənə yerləşdirməlidir, lakin bu, tamamilə proksi parametrlərindən asılıdır. Bu o deməkdir ki, mümkün qədər çox IP ünvanını müəyyənləşdirmək üçün ən azı üç dəyişənin tərkibini yoxlamalısınız: REMOTE_ADDR, HTTP_X_FORWARDED_FOR və tercihen

Addım 2

Hər üç dəyişənin yoxlanılmasını bir PHP kodunun bir sətirində birləşdirə bilərsiniz, məsələn, bu kimi:

$ ipAddr = getenv ('HTTP_CLIENT_IP') və ya $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') və ya $ ipAddr = getenv ('REMOTE_ADDR');

IP adresinin dəyərini bu şəkildə əldə etdikdən sonra onu mümkün təhriflərdən və lazımsız simvollardan təmizləmək məsləhətdir. Bunun üçün adi bir ifadə istifadə edə bilərsiniz:

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

Addım 3

Hər iki kod xəttini bir funksiyaya birləşdirmək qalır:

funksiyası getIP () {

$ ipAddr = getenv ('HTTP_CLIENT_IP') və ya $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') və ya $ ipAddr = getenv ('REMOTE_ADDR');

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

}

Tövsiyə: