XAWeb adlı üyeden alıntı: mesajı görüntüle
<?php
$Engelle = array(
"::1",
"192.168.1.1",
"127.0.0.1");
if (in_array ($_SERVER['REMOTE_ADDR'], $Engelle)) {
header("location: https://google.com/");
exit();
} ?>



Az evvel verdiğim kodu header en üst satırına uygula yasaklayacağın ipleri yaz sırasıyla sorunun çözülecektir.
Cevap için teşekkürler. İşe yarayacağını sanmıyorum ama kodunuzu ekledim. Karşı tarafın veri çekmesini bekliyorum şimdilik. Çekilen verilerin gizli bir bölümüne $_SERVER['REMOTE_ADDR' ile ip adresini tespit ederek engellemeye çalışıyorum. Şu an kullandığım kod aşağıda ve çalışıyor. Ancak buna karşı işe yaramıyor.
$ip_block1 = array(
        '62.141.*.*',
        '54.39.*.*',
        '34.90.*.*',
        '149.202.*.*',
        '138.68.*.*',
        '51.75.*.*',
        '67.205.*.*',
        '35.235.*.*',
        '159.85.*.*',
        '23.96.*.*',
        '142.93.*.*',
        '84.208.*.*',
        '186.103.*.*',
        '94.242.*.*',
        '195.182.*.*',
        '159.65.*.*',
        '206.125.*.*',
        '37.59.*.*',
        '184.105.*.*',
        '159.203.*.*',
        '138.197.*.*',
        '217.182.*.*',
        '52.151.*.*',
        '85.207.*.*',
        '128.68.*.*',
        '54.37.*.*',
        '206.189.*.*',
        '35.247.*.*',
        '181.129.*.*',
        '51.15.*.*',
        '173.249.*.*',
        '198.50.*.*',
          '165.22.*.*'
        
);
if (isset($_SERVER['HTTP_CLIENT_IP']))
{
$client_ip = $_SERVER['HTTP_CLIENT_IP'];
} else if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$client_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else if(isset($_SERVER['HTTP_X_FORWARDED'])) {
$client_ip = $_SERVER['HTTP_X_FORWARDED'];
} else if(isset($_SERVER['HTTP_FORWARDED_FOR'])) {
$client_ip = $_SERVER['HTTP_FORWARDED_FOR'];
} else if(isset($_SERVER['HTTP_FORWARDED'])) {
$client_ip = $_SERVER['HTTP_FORWARDED'];
} else if(isset($_SERVER['REMOTE_ADDR'])) {
$client_ip = $_SERVER['REMOTE_ADDR'];
}

$blocked1 = false;
foreach($ip_block1 as $ip1)
{
if($client_ip == $ip1)
{$blocked1 = true;
break;
}else if(strpos($ip1, '*') !== false){
$digits = explode(".", $ip1);
$client_ip_digits = explode(".", $client_ip);
if($digits[1] == '*' && $digits[0] == $client_ip_digits[0])
{
$blocked1 = true;
break;
}else if($digits[2] == '*' && $digits[0] == $client_ip_digits[0] && $digits[1] == $client_ip_digits[1]){
$blocked1 = true;
break;
}else if($digits[3] == '*' && $digits[0] == $client_ip_digits[0] && $digits[1] == $client_ip_digits[1] && $digits[2] == $client_ip_digits[2]){
$blocked1 = true;
break;
}
}else if(strpos($ip1, "-") !== false){
list($start_ip, $end_ip) = explode("-", $ip1);
$start_ip = preg_replace('/s+/', '', $start_ip);
$end_ip = preg_replace('/s+/', '', $end_ip);

$start_ip_long = ip2long($start_ip);
$end_ip_long = ip2long($end_ip);

if($client_ip_long >= $start_ip_long && $client_ip_long <= $end_ip_long)
{$blocked1 = true;
break;
}}}


if($blocked1 == true)
{
header('Location: /');
}




BoraBozdogan adlı üyeden alıntı: mesajı görüntüle
engelleme yapman çok zor ,hele karşındaki adam işi biliyorsa imkansız.
ip tabanlı yasaklama yapsan bile adam yüzlerce proxy alabilir.
bir ihtimal google ipleri haric olarak yurtdışı erişimi kapatabilirsiniz ,
  • 64.233.160.0 – 64.233.191.255
  • 66.102.0.0 – 66.102.15.255
  • 66.249.64.0 – 66.249.95.255
  • 72.14.192.0 – 72.14.255.255
  • 74.125.0.0 – 74.125.255.255
  • 209.85.128.0 – 209.85.255.255
  • 216.239.32.0 – 216.239.63.255
Tüm arama motorlarının ip adreslerini useragent ile uyuşmalarını kontrol edip banlamaya çalıştım yine çalışmadı. Şu an karşı tarafın useragent bilgilerini alamıyorum. Boş gösteriyor. Ip adresini aldığım halde banlayamıyorum. Dediğiniz gibi yurt dışı ziyaretlerini kapatamam. Çünkü yurt dışından da ziyaretçilerim var.



MeteOguzhan adlı üyeden alıntı: mesajı görüntüle
İptables ile engellemeyi deneyebilirsiniz hosting değil ise
Sunucu bana ait ama Iptables hakkında bilgim yok. Biraz araştırma yapayım.