Bir Site Ziyaretçisinin IP'si Nasıl Bulunur?

İçindekiler:

Bir Site Ziyaretçisinin IP'si Nasıl Bulunur?
Bir Site Ziyaretçisinin IP'si Nasıl Bulunur?

Video: Bir Site Ziyaretçisinin IP'si Nasıl Bulunur?

Video: Bir Site Ziyaretçisinin IP'si Nasıl Bulunur?
Video: Site ziyaretçi sayısı nasıl öğrenilir? - Web sitesi ziyaretçi istatistikleri 2024, Mayıs
Anonim

Çoğu zaman, bir site ziyaretçisinin IP adresi onu tanımlamak için kullanılır. Ancak bunun yanı sıra, IP kullanarak ziyaretçi hakkında birçok ek bilgi alabilirsiniz - örneğin, İnternet sağlayıcısını ve coğrafi konumunu öğrenin. Uygulamada, sunucu tarafı PHP betikleri çoğunlukla tarayıcı tarafından gönderilen istek başlıklarından IP adreslerini çıkarmak için kullanılır.

Bir site ziyaretçisinin IP'si nasıl bulunur?
Bir site ziyaretçisinin IP'si nasıl bulunur?

Bu gerekli

Temel PHP bilgisi

Talimatlar

Aşama 1

Süper küresel ortam değişkeni dizisinden IP adreslerini okumak için PHP'nin yerleşik getenv işlevini kullanın. En basit durumda REMOTE_ADDR isimli değişkeni okumanız yeterli olacaktır. PHP kodunun ilgili parçası şöyle görünebilir: $ userIP = getenv ('REMOTE_ADDR');

Adım 2

İstekte gönderilen REMOTE_ADDR değişkenine ek olarak, HTTP_VIA ve HTTP_X_FORWARDED_FOR değişkenlerini kontrol edin. Ziyaretçi bir proxy sunucusu kullanıyorsa, ara adresin hem HTTP_VIA hem de REMOTE_ADDR olmak üzere her iki değişkene de kaydedilmesi gerekir. Bu durumda HTTP_X_FORWARDED_FOR üzerinden ziyaretçinin gerçek IP'sini bulmaya çalışabilirsiniz - proxy sunucusu orijinal adresi buna koymalıdır. Ancak bu her zaman yapılmaz ve kullanıcı, isteği gönderen ziyaretçinin orijinal IP'sini iletmeyen "opak" bir proxy sunucusu seçme fırsatına sahiptir. Her durumda, HTTP_CLIENT_IP değişkeni için bir kontrol ekleyerek kodunuza orijinal IP adresini almak için mümkün olduğunca çok yol kullanmalısınız.

Aşama 3

Bir PHP kodu satırında, ziyaretçinin orijinal IP adresini içerebilen üç ortam değişkeninin sıralı kontrolünü birleştirin. Bu, örneğin şu şekilde yapılabilir: $ userIP = getenv ('HTTP_CLIENT_IP') VEYA $ userIP = getenv ('HTTP_X_FORWARDED_FOR') VEYA $ userIP = getenv ('REMOTE_ADDR');

4. Adım

Ortam değişkenlerine girebilecek IP değerinden fazladan karakterleri ve diğer "çöpleri" kaldırın. Bu, örneğin, yerleşik PHP işlevleri TRIM ve preg_replace kullanılarak yapılabilir: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ kullanıcıIP));

Adım 5

PHP betiklerinizin farklı bölümlerinde kontrol ve temizleme satırlarını defalarca tekrarlamak yerine ona başvurabilmeniz için tüm kodu özel bir işlevde birleştirin. Örneğin, şöyle: FUNCTION getUserIP () {

$ userIP = getenv ('HTTP_CLIENT_IP') VEYA $ userIP = getenv ('HTTP_X_FORWARDED_FOR') VEYA $ userIP = getenv ('REMOTE_ADDR');

DÖNÜŞ TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));

}

Önerilen: