چهار شنبه 23 آبان 1397 |  عضویت / ورود






[ بخش اصلی آموزشها | افزودن آموزش | داری بیشترین امتیاز | دارای بیشترین بیننده | جدیدترین نظرات ]

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



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


-------------------

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

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

 

به هر حال، برای به دست آوردن 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

 

موفق باشید؛
حمید رضا نیرومند





ارسال سؤال یا نظر


1- كاربر:
بوسیله: , در: Wednesday, 2012 October 31-کد: 5207
عالي بود


2- آسیادیزاین:
بوسیله: , در: Friday, 2013 December 13-کد: 8790
با سلام خدمت شما - این اسکریپت کار نمیکنه دلیل داره
سیستم آیپی یه چیز کوچیکی نیست که بخواد اینطوری زود بدستش آورد اونوقت برادران هکر بیکار میشدند - اگر ایپی اینطوری زود به دست میومد که دیگه تونت امنیت کامل بودش - و اگر کسی تونست آیپی واقعی رو بدست بیاره خودشو به اطلاعات معرفی کنه - تو هوا میزننش منظورم اینه استخدامش میکنن آیندشم تامینه - موفق باشید


3- بهروز:
بوسیله: , در: Thursday, 2014 July 03-کد: 10772
دم شما گرم کارمو راه انداختی.
و اما در مورد این آقای "آسیادیزاین" که نظر دادن باید بگم که امیدوارم خدا شفات بده


4- کوروش:
بوسیله: , در: Saturday, 2014 July 05-کد: 10798
چطور میشه فعالیتهای کاربران سایت را ذخیره کرد (اعم از ورود و خروج و اعمال تغییرات همراه با ساعت و تاریخ و آی پی آدرس کاربر) و ماهیانه و یا هفتگی به کاربران گزارش عملکرد داد ؟
مثلا گوگل هر چند از گاهی برام میل میده و گزارش عملکردم را بهم میده؟
به این کار میگن log گرفتن از فعالیت کاربران
لان کاربر که وارد سایت میشه نام کاربری و آی پی و تاریخ ورود و ساعت ورودش را نمایش میده . اما برای ذخیره در بانک اطلاعاتی موندم چیکار کنم . کتاب جعفرنژاد قمی و محمد مصدری را مطالعه کردم . توی هیچکدومشون به چنین چیزی اشاره نشده . اونا فقط میگن برای ذخیره در بانک اطلاعاتی باید یه فرم بسازیم با html و اطاعات را از کاربر بگیریم . تو نت هم گشتم دیگه خسته شدم . همه جا بانک اطلاعاتی را با ورودی کاربر آوردن
اینم کد اطلاعاتی که باید ذخیره بشن (ساعت و تاریخ و آی پی و نام کاربری

کد HTML:

TIME = new Date(); DIFF = new Date() - TIME ;
INTV = window.setInterval("Show_Clock()",1000) ;
function Show_Clock(){ TIME = new Date(new Date() - DIFF) ;
HH = TIME.getHours() ; MM = TIME.getMinutes() ; SS = TIME.getSeconds() ;
do*****ent.getElementById('CLOCK').innerHTML=((HH

currentUser->username; ?>


ممنون میشم راهنماییم کنید . خیلی گشتم دنبال مطلبش . تو خیلی سایتها رفتم


5- abbas :
بوسیله: , در: Monday, 2014 August 18-کد: 11338
آقای محترم بهروز جنابعالی مریضی نه آسیادیزاین
وقتی یکی داره در مورد چیزی اطلاعات میده شمایی که اطلاعات نداری لال شو بقیه استفاده کنند
حق با آسیا دیزاین میباشد مگه شهر هرته آی پی رو اینجوری بدست بیاری ؟ خخخخ


6- amin:
بوسیله: , در: Tuesday, 2016 May 24-کد: 14495
ایپی واقعی را نمیده . یه لحظه جا خوردم گفتم مگه به این سادگی میشه !! بعد تست کردم دیدم نه نمیشه :)


7- mehdi:
بوسیله: , در: Saturday, 2017 April 29-کد: 15106
این روش برای پروکسی جواب نمیده

Tutorials ©