PHP‘yle sitenizi ziyaret eden kullanıcı hakkında envai çeşit bilgiye hasıl ulaşabileceğiniz ile ilgili bir yazı hazırladım. Envai çeşitten kastım, IP adresinden sunucu protokolüne kadar istemcinin sunucuya gönderdiği çeşitli bilgiler. Görelim:“;echo “Uzak host: ” . gethostbyaddr($_SERVER[‘REMOTE_ADDR’]) . “
“;echo “Web tarayıcısı: ” . $HTTP_USER_AGENT . “
“;echo “Referans adresi: ” . $HTTP_REFERER . “
“;echo “Kullanıcının dilleri: ” . $_SERVER[‘HTTP_ACCEPT_LANGUAGE’] . “
“;echo “sıkıştırma isteği: ” . $_SERVER[‘HTTP_ACCEPT_ENCODING’] . “
“;echo “Sunucu protokolü: ” . $_SERVER[‘SERVER_PROTOCOL’] . “
“;echo “HTTP bağlantısı: ” . $HTTP_CONNECTION . “
“;echo “Karakter seti: ” . $_SERVER[‘HTTP_ACCEPT_CHARSET’] . “
“;echo “Kabul: ” . $HTTP_ACCEPT . “
“;echo “İstek metodu: ” . $_SERVER[‘REQUEST_METHOD’] . “
“;echo “Uzak port: ” . $REMOTE_PORT . “
“;echo “HTTP_VIA (proxy sağlayıcısı): ” . $HTTP_VIA . “
“;echo “Gerçek IP (proxy üzerinden isen): ” . $HTTP_X_FORWARDED_FOR . “
“;echo “Çerezler: ” . $HTTP_COOKIE . “
“;?>
Açıklama:Uzak host; IP adresinin alan adını görebilirsiniz, örneğin 144.122.250.220 IP’sinin alan adı y22-27.pclabs.metu.edu.tr, böylece ziyaretçinin hangi bilgisayarı kullandığını ya da hangi domain’de olduğunu öğrenebiliyoruz. Ya da bir web sitesi, dolayısıylşla gerçek ziyaretçi mi yoksa bot mu olduğu fikrine de ulaşabiliriz.
Web tarayıcısı; web tarayıcısının tam çözümü. Örneğin Firefox 3.0.8’inkisi şöyle: Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8
Referans adresi; sayfaya hangi adresten geldiğiniz.
Kullanıcının dilleri; kullanıcının kendi tarayıcısında belirttiği diller.Sıkıştırma isteği; tarayıcı web sayfasının sıkıştırılmış halini istiyorsa burada belirtir. Uzun yıllardır tüm tarayıcılar böyle bir istekte bulunurlar (gzip isteği), amaç ağ trafiğini düşürmek. Google haricindeki botlar böyle bir istekte bulunmazlar, bu bilgiden yola ziyaretçinin bot olup olmadığını anlayabilirsiniz. Ayrıntılı bilgi için Kodaman’daki gzip yazısını okuyabilirsiniz.Sunucu protokolü, web tarayıcıları HTTP/1.1 sunucu protokolüyle iletişim kurmak istediklerini belirtirler, oysa Google haricindeki birçok bot (web proxy’ler dahil) HTTP/1.0 protokolünü kullanır. Bu da insan ziyaretçiler ile bot ziyaretçileri birbirinden ayırt etmek için kullanılabilir.HTTP bağlantısı; bağlantı süresiyle ilgili bilgi, web tarayıcıları (en azından Firefox-Apache ikilisi) keep-alive‘ı tercih ediyor. bir web proxy yazılımında denediğimde bu kısmın boş olduğunu farkettim.İstek metodu ya da istek yöntemi; Genellikle GET (normal istek metodu), form’lardan bilgi gönderirken POST.HTTP_VIA; eğer proxy üzerinden bağlanıyorsanız ve proxy de kendisini tanıtıyorsa burada proxy’yle ilgili bilgi bulunuyor, örneğin; 1.1 www.cc.metu.edu.tr:2003 (squid). Bunlar genellikle vekil sunucuların bulunduğu büyük kuruluşlarda olur ve yararlanmak için tarayıcıdan küçük bir ayar yapılması gerekir. Örneğin Firefox’ta bağlantı ayarlarından vekil sunucu ayarlarını otomatik tanı seçeneğinin işaretlenmesi gerekiyor.
Gerçek IP; proxy gerçek IP’nizi buradan bildiriyor.
Çerezler; sunucumuzdan tarayıcıya çerez bıraktıysak buradan görebiliriz.
Tabii, bu bilgileri veritabanında saklamak yerine mail olarak gmail’de de saklayabilirsiniz. En azından veri tabanınızı oluşturana kadar. Bunun için hazırladığım kod burada:n”;$konu = “Bişey ziyarette bulundun”;$headers = “From: Gönderen Adı rn”;mail ($alici, $konu, $body, $headers);?> Not: Bazıları sunucu ayarlarına ya da PHP sürümüne bağlı olarak çalışmayabilir.Hazırladığım demoya buradan ulaşabilirsiniz.