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

الموضوع: كود منع دوله او ip من دخول صفحة معينه بموقعك

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    43

    Question كود منع دوله او ip من دخول صفحة معينه بموقعك



    مرحبا شباب

    كيفكم

    هلا انا بدي امنع دولة معينة من دخول صفحة التسجيل في المنتدي
    فيجب اضافة كود في بداية الصفحة لمنعهم

    المهم وصلت للكود هذا

    كود PHP:
    <?php  
    $ban  
    '64.23.125.23'
    $ip $_SERVER['REMOTE_ADDR']; 
    if(
    $ip == $ban) die ("الرسالة التي ستظهر للزائر");
    $mm $_SERVER['REMOTE_ADDR'];
    echo 
    "$mm";
    ?>

    طبعا هذا الكود حيمنع بس ايبي واحد لذلك زي ما بنعمل في سي بنل للموقع عشان نمنع الدولة كلها بنحط بدل الايبي هذا

    كود PHP:
    64.23.125.23 
    البديل

    كود PHP:
    64.*.*.* 

    بس للاسف ما زبط


    السؤال كيف نخلي الكود يمنع دولة كاملة او هاك او اي شغلة تكون بديلة

    اكيد عندكم حل ؟؟







  2. #2
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    56


    والله انا ايضا كنت أبحث عن الجواب ..
    في مرة من المرات شفت موقع يبيع قاعدة بيانات كل الدول .. اتوقع هذا هو الحل ؟
    في انتظار من يرد على الموضوع ..






  3. #3
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    43


    UP...






  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    477


    هناك أكثر من طريقه بالطبع .. بالنسبه لطريقتك لو فكرت شوي ستصل للحل
    بداية سأعطيك طرف خيط الحل و أنت فكر و كمل :
    تقدر تعمل explode للأي بي للشخص و من ثم تقارنه برينج أي بي الدولة الممنوعه . ان كان مساوي لجزأ من الأي بي بعد ال explode فيمنعه أو يظهر له الرسالة التي تريدها أن تظهر له





    __________________
    أحمد عبد الفتاح
    www.servmix.com
    لمراسلتي : admin@servmix.com


  5. #5
    عضو نشيط
    تاريخ التسجيل
    Mar 2008
    المشاركات
    148


    أخي الحل سهل على ما أظن
    يلزم عليك أولا التوفر على قاعدة بيانات لإيبيات الدول حيث أن كل رقم إيبي دولة معينة يكون متميز عن رقم إيبي الدولة الأخرى بالأرقم 3 أو 2 الأولى
    بعد هذا تجلب إيبي الزائر وتقوم بعمل تقسيم له بأحد الدالات حيث يكون مكان التقسيم هو النقطة ستخرج لك الدالة بمصفوفة تقارن المحتوى الأول لو كان هو موجود في القائمة المحظورة تخرج رسالة
    أظن أن الدالة هي
    explode






  6. #6
    عضو نشيط
    تاريخ التسجيل
    Mar 2008
    المشاركات
    148


    هناك أكثر من طريقه بالطبع .. بالنسبه لطريقتك لو فكرت شوي ستصل للحل
    بداية سأعطيك طرف خيط الحل و أنت فكر و كمل :
    تقدر تعمل explode للأي بي للشخص و من ثم تقارنه برينج أي بي الدولة الممنوعه . ان كان مساوي لجزأ من الأي بي بعد ال explode فيمنعه أو يظهر له الرسالة التي تريدها أن تظهر له
    أختلف معاك أخي في أن يقارن الجزء من الإيبي بأي جزء من الإيبي المحظور
    يجب عليه مقارنة فقط الأرقام الأولى قبل . مع الأحرف الأولى لأي إيبي من أية دولة يود حظرها






  7. #7
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947


    صحيح .. الحل هو استخدام الدالة explode
    مثال:

    لنفرض لدينا الأي بي التالي من دولة معينة (196.65.84.365)
    الان سنحتاج لمطابقة آخر رقمين (196.65)
    الحل باستخدام explode
    لنفرض أن الآي بي في متغير هكذا
    كود PHP:
    $ip="196.65.84.365"
    سنقوم الآن بتقسيمه بالامر explode كالتالي:

    كود PHP:
    $ip=explode("."$ip); 
    الآن سيقوم بتقسيم الاي بي الى 4 مقاطع

    نقوم بدمج اول مقطعين بوضعهم في array ثم دمجهم بالامر implode

    كود PHP:
    $ip = array($ip[0],$ip[1]);
    $ip implode(".",$a); 
    echo 
    $ip
    الآن سيكون الناتج هو (196.65)
    وكذلك الحال اذا اردت عمل رقم واحد فقط فلا حاجة لاستخدام ال array

    الكود كامل

    كود PHP:
    <?php
    $ip
    ="196.65.84.365";
    $ip=explode("."$ip);
    $ip = array($ip[0],$ip[1]); 
    $ip implode(".",$ip); 
    echo 
    $ip
    ?>
    بالتوفيق





    التعديل الأخير تم بواسطة مهندس مصرى ; 24-07-2008 الساعة 04:58 AM
    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  8. #8
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    كود PHP:
    $ips = array(
        
    'xxx.xxx.*.*',
        
    'xxx.xxx.*.xxx',
        
    'xxx.*.*.*'
    );

    $myip $_SERVER['REMOTE_ADDR'];
    foreach (
    $ips as $ip) {
        
    $ip str_replace(array('*''.'), array('[0-9]{1,3}''\.'), $ip);
        if (
    preg_match('/'$ip .'/'$myip)) {
            echo 
    'نطاق آي بي جهازك محظور.';
            break;
        }

    لم أقم بتجربته، لكن يمكنك أن تجربه وتعلمني بالنتيجة، إن كان هناك أي خطأ أو نقص سنحاول تطويره معاً إن شاء الله تعالى ..

    يمكنك وضع * بدلاً من أي حقل كاملاً ، يعني *.*.*.* هذا يعني أنك ستحظر جميع الآيبيهات من الدخول، بهذا الشكل يمكنك الاستغناء عن أي حقل، لكن لا يمكن أن تكون النجمة جزءاً من حقل، مثل:
    كود:
    192.1.2*.3
    لأن النجمة ستعتبر من 1 إلى 3 أرقام ، وهذا قد يخل بعمل الكود بعض الشيء ..

    أطيب التحيات، أشرف السمهوري





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    477


    أختلف معاك أخي في أن يقارن الجزء من الإيبي بأي جزء من الإيبي المحظور
    يجب عليه مقارنة فقط الأرقام الأولى قبل . مع الأحرف الأولى لأي إيبي من أية دولة يود حظرها
    هذا بالفعل ما قصدته .. و ليست مقارنة جزأ من الأي بي للمستخدم !





    __________________
    أحمد عبد الفتاح
    www.servmix.com
    لمراسلتي : admin@servmix.com






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

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

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