[Product] : لجعل منتداك يستخدم الإي بي الحقيقي عندما يتصل به اي بروكسي

Eng Ahmed

ادارة المنتدى
9 مارس 2008
3,318
11
38
www.support-ar.com
------------
هذا الهاك ببساطة يجعل منتداك يستخدم الآي بي الحقيقي
عندما يتصل به أي بروكسي. آي بي البروكسي يسجل في حقل إضافي ولكن يتم تجاهله..
يسمح لك بمعرفة الآي بي الحقيقي في كل أنحاء المنتدى، المتواجدين الآن،
في الأعضاء الموقفين في قائمة الأعضاء، آي بي سيرفر البروكسي.

للمبرمجين حتى تفهم سالفة الهاك:

vB تستخدم متغيرين أساسيين هما IPADDRESS و ALT_IP،
هذا الهاك يضيف متغير ثالث اسمه - PROXYIP. إذا ما حصل بروكسي
المتغيير IPADDRESS يوضع كآي بي حقيقي،
ALT_IP يوضع كآي بي حقيقي أيضاً و PROXYIP يوضع فارغ.

إذا صاد له بروكسي ويش يسوي؟
المتغير IPADDRESS يوضع كآي بي حقيقي
أما المتغيير ALT_IP يوضع على آي بي البروكسي
والمتغيير PROXYIP يوضع على آي بي البروكسي أيضاً.



خطوات التركيب هي كالتالي:

الخطوة الأولى:

في ملف class_core.php
ابحث عن:


PHP:
            function fetch_ip() 
    { 
        return $_SERVER['REMOTE_ADDR']; 
    }



أضف أسفلها:



PHP:
            /* 
    Paul M - Try to detect real ip when proxy is in use. 
    */ 
    function fetch_real_ip() 
    { 
        $real_ip = '';  
        $ignoreprivate = false;     
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))  
        { 
            $real_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];  
        } 
        else if (isset($_SERVER['HTTP_CLIENT_IP']))  
        { 
            $real_ip = $_SERVER['HTTP_CLIENT_IP'];  
        } 
        else if (isset($_SERVER['HTTP_FROM']))  
        { 
            $real_ip = $_SERVER['HTTP_FROM'];  
        } 
        if (preg_match("#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#", $real_ip, $iplist)) 
        { 
            $real_ip = $iplist[0];  
            if ($ignoreprivate AND preg_match("#^(127|10|172\.(1[6-9]|2[0-9]|3[0-1])|192\.168|169\.254)\.#", $real_ip)) 
            {  
                $real_ip = '';  
            }  
        } 
        else   
        { 
            $real_ip = '';  
        } 
        return $real_ip; 
    }



الخطوة الثانية:

أيضاً في class_core.php
ابحث عن:


//
PHP:
fetch client IP address 
        $registry->ipaddress = $this->fetch_ip(); 
        define('IPADDRESS', $registry->ipaddress); 

        // attempt to fetch IP address from behind proxies - useful, but don't rely on it... 
        $registry->alt_ip = $this->fetch_alt_ip(); 
        define('ALT_IP', $registry->alt_ip);


استبدل بـ:


//
PHP:
Paul M - Set Real, Alt & Proxy IP addresses 
        $registry->ipaddress = $this->fetch_ip(); 
        $registry->alt_ip = $this->fetch_alt_ip(); 
        $registry->real_ip = $this->fetch_real_ip(); 
        define('ALT_IP', $registry->alt_ip); 
        if ($registry->real_ip) 
        { 
            define('PROXYIP', $registry->ipaddress); 
            define('IPADDRESS', $registry->real_ip);  
        } 
        else 
        { 
            define('PROXYIP', '');  
            define('IPADDRESS', $registry->ipaddress); 
        }


الخطوة الثالثة:

في class_core.php
ابحث عن:


//
PHP:
define session constants 
        define('SESSION_HOST',   substr($registry->ipaddress, 0, 15));


استبدل بـ:


PHP:
if (!defined('SESSION_IDHASH')) 
        { 
            // Paul M - Define session id 
            define('SESSION_IDHASH', md5($_SERVER['HTTP_USER_AGENT'] . vB_Session::fetch_substr_ip(IPADDRESS))); 
        }


الخطوة الخامسة:

ارفع الصورة المرفقة px.gif إلى المسار /images/buttons folder.


الخطوة السادسة:

ارفع الهاك من لوحة التحكم كمنتج(product).
(الهاك مرفق مع الموضوع) تأكد أن السماح بطغيان الكتابة موضوع على نعم.
 

المرفقات

  • Proxy-to-real-ip.zip
    4.2 KB · المشاهدات: 159