تبلیغات
Bcode.ir - پیدا کردن IP واقعی کاربر PHP

پیدا کردن IP واقعی کاربر PHP

نویسنده :
تاریخ:چهارشنبه 29 مهر 1394-07:00 ب.ظ

آیا شما هم برای پیدا کردن IP کاربر از  این روش استفاده می کنید :

$IP = $_SERVER[‘REMOTE_ADDR’]

اما شاید برای شما جالب باشد که این روش در همه حالات IP حقیقی کاربر را نشان نمی دهد
فانکشن زیر میتونه کمک کنه شما IP واقعی کاربر رو بدست بیاورید :

function getRealIpAddr()

  if ( !empty ( $_SERVER['HTTP_X_REAL_IP'] ) )    //آخرین درخواست کننده
 {    

 $ip = $_SERVER['HTTP_X_REAL_IP'];
 }
 elseif ( !empty ( $_SERVER['HTTP_CLIENT_IP'] ) )    //بررسی آی پی از محل اشتراک گذاری اینترنت
 {    
 $ip = $_SERVER['HTTP_CLIENT_IP'] ;  
 }  
 elseif (
!empty ( $_SERVER['HTTP_X_FORWARDED_FOR'] ) )    //بررسی آی پی از خروجی یک پراکسی 
 {     
$ip = $_SERVER[
'HTTP_X_FORWARDED_FOR']
  }  
 else    {    
 $ip = $_SERVER[
'REMOTE_ADDR'] ;  
 } 
  return $ip ;
}

 و یا با switch و case می توان نوشت :


function getRealIpAddr() {
switch(true){ 
case ( !empty ( $_SERVER['HTTP_X_REAL_IP'] ) ) : return $_SERVER['HTTP_X_REAL_IP'] ;    
case ( !empty ( $_SERVER['HTTP_CLIENT_IP'] ) ) : return $_SERVER['HTTP_CLIENT_IP'] ;    
case ( !empty ( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) : return $_SERVER['HTTP_X_FORWARDED_FOR'] ;     
default : return $_SERVER['REMOTE_ADDR']
}
}


$IP = getRealIpAddr() ;

در php نسخه 5.3  یا بالاتر با getenv :
$ip = getenv('HTTP_X_REAL_IP') ?:
getenv('HTTP_CLIENT_IP') ?:
getenv( 'HTTP_X_FORWARDED_FOR' ) ?:
getenv( 'HTTP_X_FORWARDED' ) ?:
getenv( 'REMOTE_ADDR' ) ;






تلگرام

دسته بندی : php 

برچسب ها:

نظرات() 
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر
نظرات پس از تایید نشان داده خواهند شد.