هاست لینوکس

آخرین بسته‌ی MyBB: نسخه‌ی 1.8.27 MyBB منتشر شد


امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
یک کد برای شناسایی IP واقعی افراد !!
#1
سلام دوستان

به این مطلب دقت کنید:

دریافت ip واقعی کاربر توسط php

آیا از مقدار $_SERVER['REMOTE_ADDR'] جهت شناسایی آدرس IP کاربران استفاده می کنید؟ شاید متوجه شده باشید که این متغیر همیشه مقدار واقعی IP کاربر را ارسال نمی کند. در صورتی که کاربر شما از طریق یک پراکسی سرور به اینترنت وصل شده باشد $_SERVER['REMOTE_ADDR'] تنها IP پراکسی سرور را بر می گرداند نه کاربر. متغیرهای سرور دیگری جهت شناسایی آدرس حقیقی کاربران وجود دارد از جمله HTTP_CLIENT_IP و HTTP_X_FORWARDED_FOR. در زیر تابع ساده ای جهت جهت تعیین آدرس IP واقعی کاربران شما آورده شده است.

تابع دریافت IP واقعی کاربر توسط PHP

کد php:
function getRealIpAddr() 

    if (!empty(
$_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet 
    

      
$ip=$_SERVER['HTTP_CLIENT_IP']; 
    } 
    elseif (!empty(
$_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy 
    

      
$ip=$_SERVER['HTTP_X_FORWARDED_FOR']; 
    } 
    else 
    { 
      
$ip=$_SERVER['REMOTE_ADDR']; 
    } 
    return 
$ip


در این تابع، در ابتدا سعی می کنیم که IP مستقیم ماشین کاربر را دریافت کنیم، اگر امکان پذیر نباشد جهت شناسایی IP ارسال شده از سوی پراکسی سرور (forwarded IP) از HTTP_X_FORWARDED_FOR استفاده می کنیم و اگر این متغیر نیز خالی بود از REMOTE_ADDR جهت دریافت IP کاربر بهره می بریم.


من در فایل function مای بی بی دقت کردم از همون $_SERVER['REMOTE_ADDR'] استفاده شده ایا میشه بجاش این را قرار داد برای شناسایی ادرس دقیق کاربر و اگر نمیشه کلا از این کد چطور میتوان در MyBB استفاده کرد؟
پاسخ
 سپاس شده توسطMt edition (۱۳۹۰/۵/۲۱، ۱۰:۲۸:۱۵ صبح) ، motorola30 (۱۳۹۳/۸/۴، ۱۳:۰۰:۱۵ عصر) ، شماره مجازی (۱۴۰۱/۸/۲۶، ۰۱:۵۴:۰۳ صبح) ، گراف مسنجر (۱۴۰۱/۱۰/۳، ۰۴:۱۵:۵۷ صبح) ، چارتر ۴۲۴ (۱۴۰۲/۹/۱۲، ۱۵:۱۷:۴۷ عصر)


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان