Selamlar,
Siteye giren normal kullanıcılar ile botları ayırmak istiyorum. Bunun için google, bing vb. botların ip bloklarını tanımlayıp farklı bir sayfaya yönlendirmek istiyorum.
Örnek: 64.233.160.0 – 64.233.191.255 Google bu ip aralığını kullanarak geliyor bing, yandex farklı bir ip bloğunu kullanıyor.
Bunu user agent ile yapmak istemiyorum çünkü user agent ile ddos saldırısı yapılabiliyor.
Tek ip bloğu tanımlamayı başardım ancak bu seferde google dışındaki botları tanımlayamadım. Takıldığım nokta, belirleyeceğim birden fazla ip bloğunu tanımlamayı nasıl yapabilirim?
PHP ip bloğu
2
●159
- 24-06-2019, 21:17:33
- 24-06-2019, 21:27:05
if(strpos($_SERVER['REMOTE_ADDR'], "64.233") === 0 || strpos($_SERVER['REMOTE_ADDR'], "65.234") === 0){ header("Location: block.php"); }Şeklinde deneyebilir misiniz?
---Edit: Hatta işi şöyle daha tatlı bir hale de getirebilirsiniz çünkü if fonksiyonunun condition bölümü uzayıp gidebilir.
if(strposa($_SERVER['REMOTE_ADDR'], array("11.111","22.222","33.333")) === 0){ header("Location: block.php"); } function strposa($haystack, $needles=array(), $offset=0) { $chr = array(); foreach($needles as $needle) { $res = strpos($haystack, $needle, $offset); if ($res !== false) $chr[$needle] = $res; } if(empty($chr)) return false; return min($chr); }
