السلام عليكم ورحمة الله وبركاته
عند تركيبك لمنتديات 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- إحفظ الملف وقم برفعه .
الان قم بالدخول على المتواجدون الان لو كنت مشرفاً عاماً على منتداك وراقب الأيبي الخاصه بالأعضاء وبالزوار كذلك وستجد أن الأيبي الحقيقي أصبح يظهر بدلاً من أيبي البروكسي .
الملف المعدل بالمرفق