هذا صحيح لكن إلى درجة محدودة نوعا ما، فإن كان المستخدم يدخل الموقع من خلال Proxy سواء كان مزود خدمة الإنترنت ISP أو من خلال Proxy موجود في شركته أو مؤسسته حيث توزع خدمة الإنترنت على كافة الموظفين من خلال خط إشتراك وحيد ذي عرض حزمة عالي، فلن يستطيع ذلك السطر البسيط سوى جلب رقم IP الخاص بالـ Proxy ذاته وليس حاسوب المستخدم النهائي.
لقد سبق لي أن عانيت من هذه المشكلة إلى أن وجدت لها حلا باستخدام التابع التالي:
كود PHP:
function getip() {
if (isSet($_SERVER)) {
if (isSet($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isSet($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$realip = $_SERVER['REMOTE_ADDR'];
}
} else {
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
$realip = getenv( 'HTTP_X_FORWARDED_FOR' );
} elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
$realip = getenv( 'HTTP_CLIENT_IP' );
} else {
$realip = getenv( 'REMOTE_ADDR' );
}
}
return $realip;
}
أرجو أن يكون هذا هو ما تحتاج إليه وتبحث عنه.