Merhabalar
AnılZengin ;
Bana mesaj attın bende biraz araştırdıktan sonra kaynaklardan şu şekilde bilgiler buldum buyurun,
if (eregi("Google", $_SERVER[HTTP_USER_AGENT])) {
$tarih = date("d/m/Y G:i:s");
$dosya = fopen ("bilgisayar.txt" , 'a') or die ("Dosya açılamadı!");
fputs ( $dosya , "$tarih - $_SERVER[REMOTE_ADDR] - $_SERVER[HTTP_USER_AGENT] - $_SERVER[REQUEST_URI]n" ) ;
fclose ($dosya);
}
.Txt dosyasının içinde şu şekilde, şunlara benzer şekilde iletiler göreceksiniz her bot sitenize uğradığında:
12/10/2013 5:34:31: 66.249.72.193 – Mozilla/5.0 (compatible; Googlebot/2.1; +Webmaster Help Center) – /içerik1
12/10/2013 5:34:37: 66.249.72.193 – Mozilla/5.0 (compatible; Googlebot/2.1; +Webmaster Help Center) – /içerik2
12/10/2013 5:34:39: 66.249.72.193 – Mozilla/5.0 (compatible; Googlebot/2.1; +Webmaster Help Center) – /içerik3
Buna benzer bilgilendirmelerle, botların ziyaretleri hakkında bilgi alabilirsiniz. Tarih zaman olarak bilgilendirirken, botların yapısal bilgisi olarak da bilgilendirme yapan bir kod. Txt dosyası ve yarattığı ağırlık dışında herşey harika.
Bu botlar.txt’yi arada sırada silin veya yenileyin ki büyük hız düşüşleri yaratmasın
User Agent olarak belirleyen kod
Bir botu user agent ile bulmak için birçok nedeniniz olabilir; bunu artık sizin hayalgücünüze bırakıyoruz. Bunu yapabilmeniz için PHP kod kullanmanız gerekiyor, çok zor değil, kodun bileşenlerini parça parça açıklayacağız. HTTP_USER_AGENT alanındaki Googlebot dizgesinde görülebilir hale geliyor bu kod ile sitenizi ziyaret eden botlar.
>>>dökümanınızdaki body kısmına bu kodu yapıştırın
if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), “googlebot”))
{
// what to do(ne yapmak istiyorsanız onu buraya yazın)
}
User agent imzaları ($_SERVER['HTTP_USER_AGENT']) $Bot’larla ilgili bilgilendirici diziler içeriyorsa bu büyük ihtimalle botların izini sürmeye başlamışız demektir.
HTML hale getirmek için de
if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), “googlebot”))
{?>
< h1 > HTMLyi buraya yerleştirin < / h1 >
Burayı daha önce nasıl dolduruyorsanız aynı şekilde doldurun
< ?php
}
Bu kodu parça parça açalım ve tüm parçaların ne işe yaradığını gösterelim:
if(condition){} – matematikteki fonksiyonlardaki gibi x ‘doğru’ ise y’yi yap şeklinde komudu şekillendiriyor.
Strtolover: php’de , kendisine geçirilen string’in karakterlerini küçülten bir fonksiyondur
$_SERVER başlıklar, içerikler ve kodların yerlerine dair bir bilgilendirme dizgisidir. Bu dizgilerdeki girdiler web sunucusu tarafından oluşturulur.
Strstr: c de string içerisinde geçen bir sub stringi bulmaya yarayan foksiyondur.
// slashlar ne yapacağınızı belirlediğiniz dizgeleri yazdığınız bölümlerdir. Örneğin // googlebot olarak gözüküyor, ama doğru mu ? gerçek bot mi yani?
Mail ile bilgilendiren kod
Bu da başka, daha gelişmiş bir kod, siteniz botlar tarafından ziyaret edildiğinde ve kayıt altına alındığında gelen kutunuza bir bilgilendirme maili atıyor. Zaman olarak ve gün olarak sizi bilgilendirdiği için, tam bilgiye ulaşabiliyorsunuz. Eğer bot birkaç defa, ya da ne kadar sıklıkla ziyaret ediyorsa, txt dosyasındaki verilerin üzerine yazıyor ve botların en son ziyaret bilgilerini, bu yüzden günlük kontrol etmekte fayda görüyoruz.
Bu versiyonda gün ve ayla ilgili size bilgi göndermiyor. Mailin geliş tarihinden bunları çıkartabilirsiniz.
< ?php
if ( strpos( $_SERVER['HTTP_USER_AGENT'], ‘Googlebot’ ) !== false )
{
// paste your email address here(e-mailinizi yapıştırın)
$my_email = ‘your_email_address@email.com(buraya e mail adresiniz gelecek)’;
// notify via email(email ile bildir)
mail($my_email,’[Notification]Googlebot Visit’, ‘Googlebot has just visited your website WEBSITE_NAME: ‘.$_SERVER['REQUEST_URI']);
}
?>
Tarih ve zaman ileten kod:
Bu sonuncusu daha, daha da gelişmiş bu tarih zaman olarak bilgilendirme de yapıyor.
you@yourmail.com gördüğünüz yere kendi mailinizi yazın
< ?
if(eregi("googlebot",$HTTP_USER_AGENT))
{
if ($QUERY_STRING != "")
{$url = "http://".$SERVER_NAME.$PHP_SELF.'?'.$QUERY_STRING;}
else
{$url = "http://".$SERVER_NAME.$PHP_SELF;}
$today = date("F j, Y, g:i a");
mail("you@yourmail.com", "Googlebot detected on http://$SERVER_NAME", "$today - Google crawled $url");
}
Detaylı bot araması ve bilgilendirmesi yapan kod
Bu kodda botları sırasıyla işaretleyebileceğiniz bir kod. Kodun içinde ’’ /*You can add more bot here*/’’ kısmı göreceksiniz aynı şekilde buraya daha çok bot ismi ve çeşidi ekleyebilirsiniz.
< ?php
function botDetect()
{
$bots_list=array(
“Google”=>”Googlebot”,
“Yahoo”=>”Slurp”,
“Bing”=>”bingbot”
/*You can add more bot here*/
);
$regexp=’/’. implode(“|”, $bots_list).’/’;
$ua=$_SERVER['HTTP_USER_AGENT'];
if(preg_match($regexp, $ua,$matches))
{
$bot= array_search($matches[0], $bots_list);
return $bot;
}
else
{
return false;
}
}
?>
Bot listesi de verelim: “Teoma”, “alexa”, “froogle”, “Gigabot”, “inktomi”,
“looksmart”, “URL_Spider_SQL”, “Firefly”, “NationalDirectory”,
“Ask Jeeves”, “TECNOSEEK”, “InfoSeek”, “WebFindBot”, “girafabot”,
“crawler”, “www.galaxy.com”, “Googlebot”, “Scooter”, “Slurp”,
“msnbot”, “appie”, “FAST”, “WebBug”, “Spade”, “ZyBorg”, “rabaz”,
“Baiduspider”, “Feedfetcher-Google”, “TechnoratiSnoop”, “Rankivabot”,
“Mediapartners-Google”, “Sogou web spider”, “WebAlta Crawler”
İyi forumlar diliyorum.
Kaynaklar; Google Amca, airbrake.io, seocu
Not: Kodlardaki boşluklara dikkat edin ve tırnak işaretlerini kendiniz ekleyiniz :)