نظرة سريعة على مجريات يوم سوالف
إصلاح مشاكل البحث بالكامل

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد
 
LinkBack أدوات الموضوع
عضو نشيط
تاريخ التسجيل: Nov 2005-
#1 (permalink)  
كيف اتاكد من ان الايبي من مصفوفه محدده


السلام عليكم

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


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

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

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

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

مثلا

44.55.66.77

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

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

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

222.222.222.000

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







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

ودمتم






فارس القبيلة غير متواجد حالياً   قديم 11-10-2006, 07:48 PM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Jul 2003-
#2 (permalink)  

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


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

تحياتي






__________________
النسخة الثانية من ابلود بلس قريبا جدا :
+ شريط مئوي لرفع الملفات
+ دعم اكثر من سيرفر لرفع الملفات Multi-Server
+ مكتبة ملفات مؤرشفة
Egyptechno غير متواجد حالياً   قديم 11-10-2006, 08:05 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Nov 2005-
#3 (permalink)  

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

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






فارس القبيلة غير متواجد حالياً   قديم 11-10-2006, 08:37 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Sep 2006-
#4 (permalink)  

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

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







__________________
موقع رياض القرآن متخصص بالقرآن الكريم
WwW.Ryadh-Quran.NeT
لمراسلتي
رياض القرآن غير متواجد حالياً   قديم 11-10-2006, 09:59 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Nov 2005-
#5 (permalink)  

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

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

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






فارس القبيلة غير متواجد حالياً   قديم 11-10-2006, 10:40 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: May 2006-
#6 (permalink)  

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


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


كود 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>";
    }
}
?>






EL Programmer غير متواجد حالياً   قديم 12-10-2006, 01:29 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Nov 2005-
#7 (permalink)  

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

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

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






فارس القبيلة غير متواجد حالياً   قديم 12-10-2006, 01:56 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Nov 2005-
#8 (permalink)  

up


up






فارس القبيلة غير متواجد حالياً   قديم 12-10-2006, 08:22 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Nov 2005-
#9 (permalink)  

up

للاهمية






فارس القبيلة غير متواجد حالياً   قديم 13-10-2006, 07:39 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2003-
#10 (permalink)  

تفضل

كود 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" "";







__________________
العزة لله.. والشفاعة لك يا رسول الله
اللهم ارحم شهداؤنا و كل من قاتل في سبيل الله... آمين
اللهم انصر المجاهدين المسلمين في كل مكان... آمين
snake_eyes غير متواجد حالياً   قديم 24-10-2006, 10:39 PM
رد مع اقتباس
رد


أدوات الموضوع

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

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



الساعة الآن: 11:26 PM بتوقيت المملكة العربية السعودية