بن کردن یک رنج آی پی با استفاده از .htaccess!!

شروع موضوع توسط persian-earning ‏9 فوریه 2007 در انجمن PHP

  1. persian-earning

    persian-earning کاربر فعال درآمد اینترنتی کاربر فعال

    تاریخ عضویت:
    ‏31 جولای 2004
    نوشته ها:
    1,073
    تشکر شده:
    1
    محل سکونت:
    UnderNet
    همانطور که میدانید با استفاده از کد زیر میتوانیم دسترسی آی پی خاصی را به سایت محدود کنیم:
    PHP:
    Order Deny,Allow
    Deny from 85.133.170.325

    و اگر بخواهیم رنج آی پی ای را بن کنیم باید به این صورت عمل کنیم:

    PHP:
    Order Deny,Allow
    Deny from 85.133.170
    .*

    حالا مشکل اینجاست که روش رنج دهی مثل بالا دقیق نیست، اگر بخواهیم رنج دقیق بدهیم یعنی مثل85.133.85.96-85.133.70.25 چگونه باید در هیت اکسس عمل کنیم؟
     
  2. خدمات پی پالبازدیدیار - افزایش بازدید سایت و سیگنال های برند
  3. miladmovie

    miladmovie مدیر بازنشسته کاربر فعال

    تاریخ عضویت:
    ‏25 دسامبر 2002
    نوشته ها:
    1,936
    تشکر شده:
    2
  4. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    یه چیز هایی پیدا کردم
    برای دینای کردن و رفتن به یه صفحه این خوبه
    PHP:
    <Files 403.shtml>
    order allow,deny
    allow from all
    </Files>
    اگر Cpanel داشته باشی هم خودش رنج انجام میده


    این طوری هم می تونی رینج بدی
    deny from 83.104.88.156/30
    ولی باید فعال باشه ها
     
  5. Pedram_carp3

    Pedram_carp3 Registered User

    تاریخ عضویت:
    ‏22 اکتبر 2006
    نوشته ها:
    173
    تشکر شده:
    1
    محل سکونت:
    xorg.conf
    خارج از بحث :‌
    کد:
    http://www.google.com/search?q=htaccess+deny+IP+range&ie=utf-8&oe=utf-8&rls=org.>>>>>>>>>>>>debian<<<<<<<<<<<<<<<<<<:en-US:unofficial&client=firefox-a
    
    میلاد , میبینم که کاا کوچ کردی !‌موفق باشی پسر !‌
     
  6. persian-earning

    persian-earning کاربر فعال درآمد اینترنتی کاربر فعال

    تاریخ عضویت:
    ‏31 جولای 2004
    نوشته ها:
    1,073
    تشکر شده:
    1
    محل سکونت:
    UnderNet
    بعد از کلی گشتن فقط تونستم این سه تا لینک به درد بخور را پیدا کنم ولی یه مقدار پیچیده توضیح داده بودند، علی الخصوص اولی:
    http://www.webmasterworld.com/forum92/3546.htm
    http://www.aota.net/forums/showthread.php?postid=155330#post155330
    http://forum.statcounter.com/vb/showthread.php?t=25767

    مثل اینکه باید یک ذره مفاهیم نتورک بلد باشی تا بتوانید از اینها استفاده کنی!
    از دوستان کسی هست بتونه کمک کنه؟
     
  7. persian-earning

    persian-earning کاربر فعال درآمد اینترنتی کاربر فعال

    تاریخ عضویت:
    ‏31 جولای 2004
    نوشته ها:
    1,073
    تشکر شده:
    1
    محل سکونت:
    UnderNet

    lol :rolleyes:
     
  8. miladmovie

    miladmovie مدیر بازنشسته کاربر فعال

    تاریخ عضویت:
    ‏25 دسامبر 2002
    نوشته ها:
    1,936
    تشکر شده:
    2
    چه کار می خواهی بکنی چه رنجی رو می خواهی محدود کنی بگو تا ببنم تنظیماتی رو می شه واست گفت ؟
    ولی خوب همون لینک اولی گفته بود که


    ------------
    پدارم : متشکرم انشالله همه به راه راست هدایت بشوند ;)
     
  9. persian-earning

    persian-earning کاربر فعال درآمد اینترنتی کاربر فعال

    تاریخ عضویت:
    ‏31 جولای 2004
    نوشته ها:
    1,073
    تشکر شده:
    1
    محل سکونت:
    UnderNet
    میخوام چند کشور را بن کنم، با یکی از دوستان شبکه صحبت کردم، ظاهرا مشکل حل شده، با استفاده از netmask باید رنج داد!!!
     
  10. persian-earning

    persian-earning کاربر فعال درآمد اینترنتی کاربر فعال

    تاریخ عضویت:
    ‏31 جولای 2004
    نوشته ها:
    1,073
    تشکر شده:
    1
    محل سکونت:
    UnderNet
    یک کد پی اچ پی هست و درست هم کار می کنه برای رنج، ولی متاسفانه توش فقط میشه یک رنج را داد نمیدونم چجوری میشه چند تا رنج را بن کرد، از دوستان کسی میتواند کمک کنید؟

    PHP:
    <?PHP
    $ban_range_low
    =ip2long("217.219.50.1");
    $ban_range_up=ip2long("217.219.50.254");
    $ip=ip2long($HTTP_SERVER_VARS["REMOTE_ADDR"]);
    if (
    $ip>$ban_range_low && $ip<$ban_range_up)
    {
        print 
    "Banned";
        exit(); 
    }
    ?>


     
  11. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    خوب php بخواهی که دیگه کاری نداره


    این یک مدل
    PHP:
    <?php 
    $banned_ip 
    = array(); 
    $banned_ip[] = '111.111.111.110'// first IP 
    $banned_ip[] = '111.111.111.111'// second IP 
    $banned_ip[] = '111.111.111.112'// third IP, just add more if you need 

    foreach($banned_ip as $banned) {  
        
    $ip $_SERVER['REMOTE_ADDR']; 
        if(
    $ip == $banned){  
            echo 
    "You have been banned! Sorry!"
            exit();  
        }  
    }  

    // The rest of your PHP script goes here 
    ?>
    این یکی دیگه با رینج
    PHP:
    <?php
            
    // Addresses to block.
            
    $range = array('0'=>'127.0.0',
                           
    '1'=>'198.168'        
            
    );
        
            
    // Check current IP.
            
    foreach($range as $list){
                if(
    strstr($_SERVER['REMOTE_ADDR'], $list)){
                    echo 
    'BANNED!';
                    exit();
                }
            }
    ?>
     
  12. Pedram_carp3

    Pedram_carp3 Registered User

    تاریخ عضویت:
    ‏22 اکتبر 2006
    نوشته ها:
    173
    تشکر شده:
    1
    محل سکونت:
    xorg.conf
    حامد جان اسکریپت دومی ممکنه اشتباه کنه ٫
    −−−−−−−−−

    این باید کار کنه : − البته تست نکردم
    PHP:
    <?
    $rang = array();
    // Mix / Max
    $rang[] = array("192.168.1.0","192.168.1.200");
    $rang[] = array("127.0.0.1"."127.0.0.255");
    $rang[] = array("82.99.233.10"."82.99.233.150");
    $rang[] = array("217.0.0.1"."217.0.0.255");

    foreach (
    $rang as $ban){
          
    $a explode(".",$ban[0]);
          
    $b explode(".",$ban[1]);
          
    $c explode(".",$_SERVER['REMOTE_ADDR']);
          if(
    $c[3] >= $a[3] and $c[3] <= $b[3]){
              die(
    "I'm sorry,But you have been banned!,Go and fuck your self! ");
          }
    }
    ?>
     
  13. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    نه چرا اشتباه کنه strstr بعد اون مقدار لیست رو می زنه که با انجام شدنش مقدار true رو میده که if عمل مب کنه و ban می زنه
    امکان اشتباه نداره ها strstr داخلش بشه true میده اگر هم اولش با اون نخونه ok نمیده


    اگرچه Range کلی میشه که برای تو بهتره که بینی عمل می کنه
    ولی یه اشتباهی کردی در ارایه اولی به بعد باید , باشه نه .


    مرسی
     
  14. Pedram_carp3

    Pedram_carp3 Registered User

    تاریخ عضویت:
    ‏22 اکتبر 2006
    نوشته ها:
    173
    تشکر شده:
    1
    محل سکونت:
    xorg.conf
    این آیپی جزو رنج نیست ٫ ولی اسکریپت شما جلوشو میگیره . :)
    82.99.198.168
     
  15. miladmovie

    miladmovie مدیر بازنشسته کاربر فعال

    تاریخ عضویت:
    ‏25 دسامبر 2002
    نوشته ها:
    1,936
    تشکر شده:
    2
    والا همش که یکجوری کار می کنه ولی به نظر من بهتر از تابعی استفاده بشه که واسه این کاره :
    http://ir.php.net/manual/en/function.in-array.php
    حتما دلیلی داره که ساختنش
     
  16. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    in_array چه کاری می شه کرد باید حدود تشخیص بده نه دقیق اون رو
    اره اون من رو می گیره
    همون که دادی خوب کار می کنه
     
  17. miladmovie

    miladmovie مدیر بازنشسته کاربر فعال

    تاریخ عضویت:
    ‏25 دسامبر 2002
    نوشته ها:
    1,936
    تشکر شده:
    2
  18. persian-earning

    persian-earning کاربر فعال درآمد اینترنتی کاربر فعال

    تاریخ عضویت:
    ‏31 جولای 2004
    نوشته ها:
    1,073
    تشکر شده:
    1
    محل سکونت:
    UnderNet
    از تمام دوستان عزیز تشکر می کنم، تست می کنم و همین جاخبرش را میدم!
     
  19. persian-earning

    persian-earning کاربر فعال درآمد اینترنتی کاربر فعال

    تاریخ عضویت:
    ‏31 جولای 2004
    نوشته ها:
    1,073
    تشکر شده:
    1
    محل سکونت:
    UnderNet
    به توصیه یکی از دوستان از کد زیر استفاده کردم و کاملا درست و بدون اشکال کار کرد، گفتم اینجا بزارم شاید به درد کسی بخوره :)


    PHP:
    $ip=ip2long($_SERVER['REMOTE_ADDR']);
        
        if(
    mysql_num_rows(mysql_query("SELECT id From ranges where start<=$ip and end>=$ip")))
        {
            
    header("Location: outofservice.php");
            exit();
            }


     
عسل طبیعی و گرده گل ایرانی