• 04-08-2019, 16:37:37
    #1
    Merhaba arkadaşlar. Verilerimi çeken sitenin Ip adresini bulup banladım. Birkaç gün sonra proxy kullandığını ve sürekli faklı ülkelerden IP ile veri çekmeye devam ettiğini farkettim. Tüm Ip leri tekrar tespit ederek banladım. Şu anda tek Ip adresi üzerinden verilerimi çekmeye devam ediyor ve banlama yapamıyorum. Test amaçlı kendi Ip adresime uyguluyorum çalışıyor. Ne yapabilirim?
    Bu konuda yardımcı olabilecek arkadaşlardan cevap bekliyorum.
    if (getenv('HTTP_CLIENT_IP')) {
    $ip = getenv('HTTP_CLIENT_IP');
    } else if(getenv('HTTP_X_FORWARDED_FOR')) {
    $ip = getenv('HTTP_X_FORWARDED_FOR');
    } else if(getenv('HTTP_X_FORWARDED')) {
    $ip = getenv('HTTP_X_FORWARDED');
    } else if(getenv('HTTP_FORWARDED_FOR')) {
    $ip = getenv('HTTP_FORWARDED_FOR');
    } else if(getenv('HTTP_FORWARDED')) {
    $ip = getenv('HTTP_FORWARDED');
    } else if(getenv('REMOTE_ADDR')) {
    $ip = getenv('REMOTE_ADDR');
    } else {
    $ip = '127.0.0.1';
    }
  • 04-08-2019, 16:40:53
    #2
    Üyeliği durduruldu
    İptables ile engellemeyi deneyebilirsiniz hosting değil ise
  • 04-08-2019, 16:41:45
    #3
    <?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();
    } ?>




    kommagene adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar. Verilerimi çeken sitenin Ip adresini bulup banladım. Birkaç gün sonra proxy kullandığını ve sürekli faklı ülkelerden IP ile veri çekmeye devam ettiğini farkettim. Tüm Ip leri tekrar tespit ederek banladım. Şu anda tek Ip adresi üzerinden verilerimi çekmeye devam ediyor ve banlama yapamıyorum. Test amaçlı kendi Ip adresime uyguluyorum çalışıyor. Ne yapabilirim?
    Bu konuda yardımcı olabilecek arkadaşlardan cevap bekliyorum.
    if (getenv('HTTP_CLIENT_IP')) {
    $ip = getenv('HTTP_CLIENT_IP');
    } else if(getenv('HTTP_X_FORWARDED_FOR')) {
    $ip = getenv('HTTP_X_FORWARDED_FOR');
    } else if(getenv('HTTP_X_FORWARDED')) {
    $ip = getenv('HTTP_X_FORWARDED');
    } else if(getenv('HTTP_FORWARDED_FOR')) {
    $ip = getenv('HTTP_FORWARDED_FOR');
    } else if(getenv('HTTP_FORWARDED')) {
    $ip = getenv('HTTP_FORWARDED');
    } else if(getenv('REMOTE_ADDR')) {
    $ip = getenv('REMOTE_ADDR');
    } else {
    $ip = '127.0.0.1';
    }
    Az evvel verdiğim kodu header en üst satırına uygula yasaklayacağın ipleri yaz sırasıyla sorunun çözülecektir.
  • 04-08-2019, 16:50:21
    #4
    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
  • 04-08-2019, 16:57:04
    #5
    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.
  • 04-08-2019, 17:09:46
    #6
    kommagene adlı üyeden alıntı: mesajı görüntüle
    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: /');
    }





    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.




    Sunucu bana ait ama Iptables hakkında bilgim yok. Biraz araştırma yapayım.
    cloudflare kullanıyor musunuz?
  • 04-08-2019, 17:11:51
    #7
    ⚡⭐SUNUCU OPTİMİZASYONU⭐🚀
    Sunucu size aitmiş, CSF araştırabilirsiniz.
  • 04-08-2019, 17:12:07
    #8
    BoraBozdogan adlı üyeden alıntı: mesajı görüntüle
    cloudflare kullanıyor musunuz?
    Hayır kullanmıyorum.
  • 04-08-2019, 17:13:55
    #9
    kommagene adlı üyeden alıntı: mesajı görüntüle
    Hayır kullanmıyorum.
    Senin için bişeyler yazıyorum bitince atarım