بکندباز

چگونه آدرس IP را در PHP بدست آوریم؟

بسیاری از اوقات برای اهداف مختلف نیاز به دریافت آدرس IP بازدیدکننده داریم. به دست آوردن آدرس IP در PHP بسیار آسان است. PHP متغیر $_SERVER را برای دریافت آدرس IP کاربر فراهم می کند. با داشتن آی پی کاربر ما می‌توانیم فعالیت‌های بازدیدکننده در وب‌سایت را برای اهداف امنیتی ردیابی کنیم، یا می‌توانیم بدانیم چه کسی از وب‌سایت من و بسیاری موارد دیگر استفاده می‌کند.

ساده ترین راه برای به دست آوردن آدرس IP بازدید کننده در PHP مقدار REMOTE_ADDR است. متغیر “REMOTE_ADDR” را در PHP $_SERVER منتقل کرده و آدرس IP بازدیدکننده ای را که در حال حاضر صفحه وب را مشاهده می کند، دریافت می کنیم.

توجه: ما می‌توانیم این آدرس IP را در صفحه وب نمایش دهیم و حتی می‌توانیم در پایگاه داده برای بسیاری از اهداف دیگر مانند – برای امنیت، هدایت بازدیدکننده به سایت دیگر، مسدود کردن / ممنوع کردن بازدیدکننده ذخیره کنیم.

دریافت آدرس IP کاربر

$_SERVER['REMOTE_ADDR'] – آدرس IP کاربری که در حال حاضر از صفحه وب بازدید می کند را برمی گرداند.

<?php  
echo 'User IP Address - '.$_SERVER['REMOTE_ADDR'];  
?>  

خروجی

User IP Address - ::1

اما گاهی اوقات REMOTE_ADDR آدرس IP مشتری را بر نمی گرداند و دلیل اصلی استفاده از پروکسی است. در چنین شرایطی، ما روش دیگری را برای دریافت آدرس IP واقعی کاربر در PHP امتحان خواهیم کرد.

<?php  
    function getIPAddress()‎ {  
    //whether ip is from the share internet  
     if(!emptyempty($_SERVER['HTTP_CLIENT_IP'])) {  
                $ip = $_SERVER['HTTP_CLIENT_IP'];  
        }  
    //whether ip is from the proxy  
    elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])) {  
                $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];  
     }  
//whether ip is from the remote address  
    else{  
             $ip = $_SERVER['REMOTE_ADDR'];  
     }  
     return $ip;  
}  
$ip = getIPAddress()‎;  
echo 'User Real IP Address - '.$ip;  
?>  
خروجی
User IP Address - ::1

فلوچارت:

فلوچارت برنامه فوق مانند زیر خواهد بود.

نحوه دریافت آدرس IP در PHP

دریافت آدرس IP وب سایت

همچنین می‌توانیم آدرس IP هر وب‌سایتی را از طریق URL آن دریافت کنیم. آدرس وب سایت را در تابع gethostbyname()‎ ارسال کنید.

مثال

<?php  
$ip_address = gethostbyname("www.google.com");  
echo "IP Address of Google is - ".$ip_address;  
echo "</br>";  
$ip_address = gethostbyname("www.backendbaz.ir");  
echo "IP Address of Backendbaz is - ".$ip_address;  
?>  

خروجی

IP Address of Google is - 172.217.166.4
IP Address of javaTpoint is - 95.216.57.234
zohreh

مدیر وب سایت بکندباز

دیدگاه‌ها

*
*