المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : تحديد الأيبي الحقيقي في منتديات vbulletin


عاشق الحب
08-02-2007, 04:54 PM
السلام عليكم ورحمة الله وبركاته

نقلاً من الأخ العندليب جزاه الله خيراً ..

عند تركيبك لمنتديات vbulletin واستخدامها ستجد ان الأيبي الذي يظهر في المشاركات لبعض الأعضاء غير صحيح والسبب هو أن تحديد منتديات الـ vbulletin يعتمد في الأساس على أيبي الجهه وليس الأيبي الحقيقي للعضو .

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

إذن هذه مشكله موجوده في منتديات الـ vbulletin لذلك قمت بالبحث في النسخه ووجدت طريقة تحديد الأيبي موجوده في ملف init.php وقمت بإعادة طريقة البرمجه بحيث يصبح تحديد الأيبي معتمداً على الأيبي الحقيقي وليس أيبي البروكسي .

1- إفتح ملف init.php
2- قم بالبحث عن الأسطر التاليه :




رمز PHP:
// ################################################## ###########################
// establish client IP address
define('IPADDRESS', $_SERVER['REMOTE_ADDR']);

// check several settings for the ip; good for not grabbing proxy IPs, but can still be problematic
if ($_SERVER['HTTP_CLIENT_IP'])
{
define('ALT_IP', $_SERVER['HTTP_CLIENT_IP']);
}
else if ($_SERVER['HTTP_X_FORWARDED_FOR'] AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3 }#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches))
{
// make sure we dont pick up an internal IP defined by RFC1918
foreach ($matches[0] AS $ip)
{
if (!preg_match("#^(10|172\.16|192\.168)\.#", $ip))
{
define('ALT_IP', $ip);
break;
}
}
}
else if ($_SERVER['HTTP_FROM'])
{
define('ALT_IP', $_SERVER['HTTP_FROM']);
}
else
{
define('ALT_IP', $_SERVER['REMOTE_ADDR']);
}


3- قم باستبدالها بالأسطر التاليه :
رمز PHP:
// ################################################## ###########################
// establish client IP address
// check several settings for the ip; good for not grabbing proxy IPs, but can still be problematic
if ($_SERVER['HTTP_X_FORWARDED_FOR'] AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3 }#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches))
{
// make sure we dont pick up an internal IP defined by RFC1918
foreach ($matches[0] AS $ip)
{
if (!preg_match("#^(127|10|172\.16|192\.168)\.#", $ip))
{
define('IPADDRESS', $ip);
define('ALT_IP', $_SERVER['HTTP_CLIENT_IP']);
define('ALT_IP2', $_SERVER['REMOTE_ADDR']);
break;
}
}
}
else if ($_SERVER['HTTP_CLIENT_IP'])
{
define('IPADDRESS', $_SERVER['HTTP_CLIENT_IP']);
define('ALT_IP', $_SERVER['REMOTE_ADDR']);
define('ALT_IP2', 'N/A');

}
else if($_SERVER['REMOTE_ADDR'])
{
define('IPADDRESS', $_SERVER['REMOTE_ADDR']);
define('ALT_IP', 'N/A');
define('ALT_IP2', 'N/A');
}
else if($_SERVER['HTTP_FROM'])
{
define('ALT_IP', $_SERVER['REMOTE_ADDR']);
define('ALT_IP2', 'N/A');
define('IPADDRESS', $_SERVER['HTTP_FROM']);
}else{
define('IPADDRESS', 'Anonymous');
define('ALT_IP2', 'Anonymous');
define('ALT_IP', 'Anonymous');
}

if(!defined('IPADDRESS') || !defined('ALT_IP')){
define('IPADDRESS', 'Anonymous');
define('ALT_IP', 'Anonymous');
define('ALT_IP2', 'Anonymous');
}


4- قم بالبحث عن الأسطر التاليه

رمز PHP:
define('SESSION_IDHASH', md5($_SERVER['HTTP_USER_AGENT'] . ALT_IP )); // this should *never* change during a session
define('SESSION_HOST', substr(IPADDRESS, 0, 15));
define('USER_AGENT', $_SERVER['HTTP_USER_AGENT']);
define('REFERRER', $_SERVER['HTTP_REFERER']);



5- استبدلها بالأسطر التاليه :

رمز PHP:
define('SESSION_IDHASH', md5($_SERVER['HTTP_USER_AGENT'] . substr(IPADDRESS, 0, 15) )); // this should *never* change during a session
define('SESSION_HOST', substr(IPADDRESS, 0, 15));
define('USER_AGENT', $_SERVER['HTTP_USER_AGENT']);
define('REFERRER', $_SERVER['HTTP_REFERER']);


6- إحفظ الملف وقم برفعه .

الان قم بالدخول على المتواجدون الان لو كنت مشرفاً عاماً على منتداك وراقب الأيبي الخاصه بالأعضاء وبالزوار كذلك وستجد أن الأيبي الحقيقي أصبح يظهر بدلاً من أيبي البروكسي .

max man
02-08-2008, 03:14 PM
شكرا لمشاركتك الموضوع