کد php بدست اوردن ip سرور

آموزش بدست آوردن ip افراد

آی پی یک شناسه منحصر به فرد مثل شناسنامه یا کد ملی برای هر دستگاهی که کارت شبکه داره هست. خب بنابراین میشه گفت هر دستگاهی که به اینترنت متصل میشه یک آی پی داره که قابل ردیابی می باشد. این شناسه منحصر بفرد رو میشه برای کنترل بهتر کاربرای سایتتون در کدهاتون بکار بگیرید. بدست آوردن ip افرادی که وارد سایت شما می شوند می تواند مزایای زیادی داشته باشد از جمله:

  • ببینید کاربراتون از چه کشور هایی هستند
  • آی پی بعضی کاربرا یا کشورا رو مسدود کنید که وارد سایت شما نشوند
  • و خیلی از کارهای دیگه ای که میتونید انجام بدین…

گرفتن ip

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

<?php function Ip() {
 $ip = $_SERVER['REMOTE_ADDR'];    
 return $ip;
 } 
 echo Ip();
 ?>

اما اگر کاربری با پراکسی وارد شد چطور؟ کد زیر برای تشخیص کاربرانی که با پراکسی وارد سایتتون شدن :

<?php
 function RealIp() {   
  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;
 }
  echo RealIp();
 ?>

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

<?php 
function IpHost($ip) {
     $ip = gethostbyname($ip);
     return $ip; 
}  
     echo IpHost("chasboon.ir");
?>

نکته: این کد ها حتما باید روی سرور هاست اجرا شود. از اجرا روی local جوابی نمیگیرید. پس، از نوشتن و اجرای کدهای فوق در لوکال خودداری کنید.\

به دست آوردن IP کاربر در PHP (مبحث آی پی در پی.اچ.پی)

 

این آموزش مربوط است به موضوع آموزش PHP‏ که توسط Hamid در تاریخ: Friday, 2011 December 23 ارسال شده است.   |   تعداد بازدید: 8612 بار   |   امتیاز متوسط: امتیازی داده نشده است

——————-

به دلایل مختلف نیاز خواهید داشت که آی.پی کاربری که در سایت شما و در حال دیدن یک صفحه خاص است را بیابید و احتمالاً در دیتابیس درج کنید.

به طور مثال شاید لازم باشد آی.پی را در آخرین باری که مدیر سیستم لاگین می‌کند در جایی درج کنید و در مراجعات بعدی به او نشان دهید تا مدیر متوجه باشد که آیا آخرین بار، خودش لاگین کرده یا شخص دیگری. و یا در سیستم تستا برای اینکه متوجه شویم که افرادی که در آزمون شرکت می‌کنند، آیا از یک مکان در آزمون شرکت کرده‌اند یا خیر، آی.پی او را در لحظه ورود به آزمون ثبت می‌کنیم و به مدیر سیستم نشان می‌دهیم.

 

به هر حال، برای به دست آوردن IP کاربر با استفاده از PHP می‌توانید خیلی راحت از شبه‌تابع زیر استفاده کنید:

$ip=$_SERVER[‘REMOTE_ADDR’];

ممکن است کاربر شما از یک P..roxy استفاده کرده باشد تا آی.پی خود را تغییر دهد. اگر می‌خواهید آی.پی واقعی او را به دست آورید، بهتر است از تابع زیر استفاده کنید تا خیالتان راحت باشد که در هر شرایطی، آی.پی واقعی کاربر را به دست می‌آورید:

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 = getRealIpAddr();
?>

نمونه خروجی این تابع در آدرس زیر قابل مشاهده است:

http://yourl.ir/ip

 

موفق باشید؛