.:: بدست آوردن IP کاربر در PHP + گام به گام ::.
» باسلام، با یکی دیگر از مقالات تیم آموزشی امنیتی سیاه خدمت شما کاربران محترم هستیم..
در این پست آموزشی با مبحث آموزش بدست آوردن IP کاربر در PHP به صورت گام به گام در خدمت شما عزیزان هستیم با ما همراه باشید !
PHP چیست ؟
» در ابتدا باید گفت که PHP زبان برنامه نویسی است که اساس و کاربرد آن در طراحی
و ایجاد صفحات پویا یا داینامیک (Dynamic) است. این روز ها اکثر وب سایتهایی که با آنها سر و کار داریم؛ از نوع داینامیک یا پویا هستند. یعنی به عبارتی تمام سایتهای خبری، علمی و آموزشی، فروشگاههای اینترنتی و … داینامیک ومدام در حال تغییر و به روز رسانی هستند.از طرفی افراد میتوانند با استفاده از زبان PHP وب اپلیکیشنهایی طراحی کنند که به صورت تعاملی میباشند و قابلیت هایی از قبیل سطوح دسترسی مختلف برای اعضا، امکان ثبتنام در سایت، پنل کاربری و موارد دیگری که در اکثر وبسایت ها مشاهده می کنیم را دارا هستند .
حال سوال اینجاست که بدست اوردن آی پی کاربر چه کمکی به ما می کند !؟
- می توان متوجه شد که بازدید کنندگان از کدام کشور ها هستند
- میتوان ایپی کاربر مشخصی را ban کرد تا دسترسی آن فرد به سایت ما قطع شود
- ذخیره وقایع و لاگ (logging)
- دارنده IP در چه بازه زمانی داخل سایت شما بوده
- بدست آوردن ISP کاربر مورد نظر و موارد دیگر
چطور می توان آیپی کاربر را بدست آورد :
» با استفاده از تابع زیر در PHP می توان آیپی کاربر را در حالت عادی بدست آورد :
<?php function GetIp() { $ip = $_SERVER[‘REMOTE_ADDR‘]; return $ip; } echo(GetIp());
-» به صورت خلاصه می توان مورد بالا را به این صورت نیز به کار برد :
<?php echo $_SERVER[‘REMOTE_ADDR’]; ?>
بدست آوردن آیپی واقعی کاربر :
- همان طور که اطلاع دارید بعضی کاربران با آیپی اصلی خود وارد سایت نمی شوند . در این حالت ها و برای مثال هنگامی که کاربر از پروکسی استفاده کند برای بدست آوردن آی پی اصلی می توان از تابع GetRealip و ایندکس های مختلفی مثل :
- HTTP_CLIENT_IP
- HTTP_X_FORWARDED_FOR
- HTTP_X_FORWARDED
- HTTP_FORWARDED_FOR
- HTTP_FORWARDED
-» استفاده کرد. ( توضیح هر مورد به صورت کامنت آورده شده )
function GetRealIp() { if (!empty($_SERVER[‘HTTP_CLIENT_IP’])) //Bedast avardane ip az share internet $ip = $_SERVER[‘HTTP_CLIENT_IP’]; elseif (!empty($_SERVER[‘HTTP_X_FORWARDED_FOR’])) //dar sorati ke karbar az proxy estefade konad $ip = $_SERVER[‘HTTP_X_FORWARDED_FOR’]; else $ip = $_SERVER[‘REMOTE_ADDR’]; return $ip; }
» توجه داشته باشید که در حالت های بالا آیپی برای ما ذخیره نمی شود !
برای ذخیره سازی تمامی لاگ های آیپی می توان از تابع Fopen استفاده کرد . این تابع برای ایجاد یک فایل جدید یا باز کردن فایل بکار میرود. برای استفاده از این تابع باید قبل از خط مربوط به تابع GetRealip کد زیر را وارد کنیم:
$iplogFile = fopen(“iplog.txt”, “a”);
» استفاده از “a” در تابع بالا به منظور باز کردن فایل ایجاد شده و اعمال تغییرات در آن به صورتی که داده های( آی پی ها ) قبلی پاک نشوند است !
و در انتها و بعد از به اتمام رسیدن کد باید دوباره از تابع GetRealip استفاده کرد :
$getIp = GetRealIp() . “\n”; fwrite($iplogFile, $getIp); fclose($iplogFile);
» به همین ترتیب می توان با PHP آیپی های کاربران را ابتدا بدست آورد
و در صورت نیاز آنها را در یک فایل با نام iplog.txt ذخیره کرد. یک نکته جالب هم این هست که شما میتوانید توابع رو در یک فایل جدا قرار بدید و بعد آن را Include کنید. در نهایت توجه داشته باشید که برای تست کردن این توابع باید آنها را در هاست خود آپلود کنید ، زیرا برای تست کردن این موارد در Local Host به مشکل بر خواهیم خورد .
سلام و روز بخیر.خیلی ممنون از اموزشهای شما اساتید محترم
من تمام برنامه های شمارا دنبال میکنم.خیلی عالی هستش
فقط در باره بدست اوردن ip کاربر با php تمام راه شما را رفتم ولی نتیجه ای بهم نداد.
اگر راهنمایی بفرمایید ممنون میشم.
21
سلام به چه شکلی اجرا کردید در لوکال هاست یا هاست وافعی ؟
بیشتر توضیح بدید
21