النتائج 1 إلى 10 من 10

الموضوع: كيف اتاكد من ان الايبي من مصفوفه محدده

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    Nov 2005
    المشاركات
    440

    كيف اتاكد من ان الايبي من مصفوفه محدده



    السلام عليكم

    ياشباب عندي سؤال واتمنى اجد لديكم الاجابه :shy:


    لو كان عندي مصفوفه

    array(111.111.11.xxx,222.222.222.xxx,333.3.3.xxx)

    نفترض انها بالشكل السابق

    وابي اتاكد من الا يبي هل هو ضمن المجموعه ام لا

    مثلا

    44.55.66.77

    اريد ان اتاكد هل هذا الايبي من ضمن نطاقات المجموعه ام لا

    طبعا يفترض ان يكون الجواب لا

    ومع هذا الايبي

    222.222.222.000

    يفترض ان تكون الاجابه نعم







    اتمنى يكون سؤالي واضح

    ودمتم







  2. #2
    عضو فعال
    تاريخ التسجيل
    Jul 2003
    المشاركات
    1,576


    1- تأخذ كل آي من المصفوفة على حدة
    2- تتأكد ان اول الارقام هي نفس ارقام الآي بي المراد حظره ( اعتقد انك تريد حظر ايبيهات دولة معينة ؟ )
    3- اذا كانت متشابهة .. تتأكد ان الرقم الأخير في الآي المراد حظره اقل من آخر رقم موجود في الآي بي الذي في المصفوفة .. وأكبر من اقل رقم ..


    عموما .. الطريقة مش حلوة اعتقد لو شرحت الفكرة من اولها .. ممكن نلاقي حل افضل

    تحياتي





    __________________
    SWF Thumbnail - tweet me

  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    Nov 2005
    المشاركات
    440


    الفكره اني اريد حظر ايبيات محدده او نطاقات من الايبيات وبالاصح دول محدد دائما تسبب ازعاج بالمنتدى

    هو فيه طريقه من الاتش اكسس بس ابغا طريقه في البي اتش بي كمان






  4. #4


    كود PHP:
    if ( in_array ('Ip Number here',$MyArray) ) {
            
    //do somthing.
        

    أهذا ماتقصده ؟







    __________________
    موقع رياض القرآن متخصص بالقرآن الكريم
    WwW.Ryadh-Quran.NeT

  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Nov 2005
    المشاركات
    440


    لا اخوي رياض ليس هذا المقصود

    انا ابي اعرف الايبي هل هو من ضمن نطاق معين من الايبيات ام لا

    باختصار كيف احجب الزوار من دوله معينه او من شركه اتصالات معينة






  6. #6


    وعليكم السلام ورحمة الله وبركاته


    لفتت نظرى الفكرة واعتقدت اننى ساحتاج اليها قريبا إن شاء الله , لذا قمت بعمل هذه الدالة


    كود PHP:
    <?php
    function ipInRange($userIp $ipRange){
        
    $braces = array('[',']');
        
        
    $userIpToks explode('.' $userIp);
        if( !(
    strpos($ipRange ']')) && strpos($ipRange,'*') === false){
            if(
    $ipRange == $userIp) return true;
        }
        
    $ipRangeToks explode('.' $ipRange);
        
    $matches 0;
        for(
    $i=$i<=$i++){

            if(
    strpos($ipRangeToks[$i],']')){
                
    $ipRangeToks[$i] = str_replace($braces '' $ipRangeToks[$i]);
                list(
    $min,$max) = explode('-',$ipRangeToks[$i]);
                if((
    $userIpToks[$i] >= $min && $userIpToks[$i] <= $max)){
                    
    $matches++;
                }
                else{

                    break;
                }
            }
            elseif(
    strpos($ipRangeToks[$i],'*')!== false){

                
    $matches++;
            }
            else{

                if(
    $ipRangeToks[$i] == $userIpToks[$i]){
                    
    $matches++;
                }
                else{
                    break;
                }
            }
            if(
    $matches == 4) return true;
        }
        return 
    false;
    }
    ?>


    الدالة لها معاملين الاول هو الابى المراد التحقق منه (اى بى الزائر) والثانى هو المدى المراد التحقق خلاله.

    المدى له ثلاث عناصر:

    - ارقام 127 او 200 او 255 الى اخره
    - فترات [100-200] هذا يعنى اى رقم من 100 الى 200
    - علامة ( * ) وهى تعنى اى رقم

    ياتى المدى ليجمع بين هذه العناصر لتكوين الشرط المطلوب, فمثلا كل هذه الامثلة تحقق الاى بى 127.0.0.1

    كود PHP:
    127.0.0.1
    [100-200].0.0.1
    127.
    *.*.*
    127.[0-5].[0-5].[0-5]
    *.*.*.* 

    امثلة على استخدام الدالة

    كود PHP:
    <?php
    $userIp 
    '127.0.0.1'// اى بى الزائر

    if(ipInRange($userIp '127.*.*.[0-5]') ){ // هذا الشرط صحيح
      
    echo "$range : نعم <br>";
    }
    else{
      echo 
    "$range : لا <br>";
    }
    /////
    if(ipInRange($userIp '[100-120].*.*.[0-5]') ){ // هذا الشرط غير صحيح لان 127 اكبر من 120
      
    echo "$range : نعم <br>";
    }
    else{
      echo 
    "$range : لا <br>";
    }

    ?>
    والان بالطبع يمكنك استخدام الدالة لاجراء التحقق على اكثر من مدى

    كود PHP:
    <?php
    $userIp 
    '220.111.3.45';
    $rangesArr = array('220.111.3.45' '220.111.8.45' '220.[100-200].3.45' '220.*.[1-4].45');
    foreach(
    $rangesArr as $range){
        if(
    ipInRange($userIp $range) ){
            echo 
    "$range : نعم <br>";
        }
        else{
            echo 
    "$range : لا <br>";
        }
    }
    ?>







  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    Nov 2005
    المشاركات
    440


    يعطيك الف عافيه يالمبرمج

    لكن نبي شي ابسط مافيه؟؟؟

    سكربت الراصد كيف كان يتاكد من الايبي؟؟






  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Nov 2005
    المشاركات
    440


    up


    up






  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    Nov 2005
    المشاركات
    440


    up

    للاهمية






  10. #10
    عضو نشيط
    تاريخ التسجيل
    Jun 2003
    المشاركات
    193


    تفضل

    كود PHP:
    $BannedIP "127.0.0.1";
    //
    $ArrayOfIPs = array("111.111.11.xxx","222.222.222.xxx","333.3.3.xxx","127.0.0.1");
    for (
    $j=0;$j<count($ArrayOfIPs);$j++)
    {
        echo (
    $ArrayOfIPs[$j] == $BannedIP) ? "You are not Allowed to browse this page" "";







    __________________
    العزة لله.. والشفاعة لك يا رسول الله
    اللهم ارحم شهداؤنا و كل من قاتل في سبيل الله... آمين
    اللهم انصر المجاهدين المسلمين في كل مكان... آمين





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض