چگونه از IP مشتری مطلع شویم

فهرست مطالب:

چگونه از IP مشتری مطلع شویم
چگونه از IP مشتری مطلع شویم

تصویری: چگونه از IP مشتری مطلع شویم

تصویری: چگونه از IP مشتری مطلع شویم
تصویری: نحوه شناسایی و دریافت آدرس IP کاربر یا مشتری با PHP 2024, ممکن است
Anonim

با آدرس IP یک بازدید کننده از سایت خود ، می توانید اطلاعات زیادی در مورد او پیدا کنید - کشور ، شهر ، نام و آدرس ایمیل ارائه دهنده اینترنت و غیره. اما ارزش اصلی این است که IP می تواند به عنوان شناسه بازدید کننده برای اسکریپت های سمت سرور باشد. در زیر نحوه تعیین آدرس IP با استفاده از PHP شرح داده شده است.

چگونه از IP مشتری مطلع شویم
چگونه از IP مشتری مطلع شویم

لازم است

دانش پایه PHP

دستورالعمل ها

مرحله 1

برای استخراج آدرس IP از سرصفحه های ارسال شده به سرور درخواست مرورگر ، از تابع getenv استفاده کنید. مقادیر مشخص شده برای آن را از متغیرهای محیط می خواند. از متغیری به نام REMOTE_ADDR برای ذخیره آدرس IP بازدید کننده استفاده می شود. با این حال ، مشتری می تواند از سرور پروکسی استفاده کند ، در این صورت متغیر حاوی آدرس خود خواهد بود ، و نه آدرس مورد نظر شما. با مشاهده متغیر محیطی به نام HTTP_VIA می توانید دریابید که وبگرد از یک IP متوسط استفاده می کند. تمام آدرس های سرورهای پروکسی درگیر در زنجیره در آن قرار می گیرند ، با کاما از هم جدا می شوند. سرورهای متوسط باید آدرس بازدید کننده را در متغیری به نام HTTP_X_FORWARDED_FOR قرار دهند ، اما این کاملاً به تنظیمات پروکسی بستگی دارد. این بدان معنی است که برای پوشش دادن هرچه بیشتر امکان تعیین آدرس IP ، باید محتویات حداقل سه متغیر را بررسی کنید: REMOTE_ADDR ، HTTP_X_FORWARDED_FOR و ترجیحاً

گام 2

می توانید بررسی هر سه متغیر را در یک خط کد PHP ترکیب کنید ، به عنوان مثال:

$ ipAddr = getenv ('HTTP_CLIENT_IP') یا $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') یا $ ipAddr = getenv ('REMOTE_ADDR')؛

با بدست آوردن مقدار آدرس IP از این طریق ، بهتر است آن را از اعوجاجات احتمالی و نویسه های غیرضروری پاک کنید. برای این می توانید یک عبارت منظم استفاده کنید:

$ ipAddr = اصلاح (preg_replace ('# ^ ([^،] +) (،. *)؟ #'، '$ 1'، $ ipAddr))؛

مرحله 3

باقی مانده است که هر دو خط کد را در یک تابع ترکیب کنید:

تابع getIP () {

$ ipAddr = getenv ('HTTP_CLIENT_IP') یا $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') یا $ ipAddr = getenv ('REMOTE_ADDR')؛

برش بازگشت (preg_replace ('# ^ ([^،] +) (،. *)؟ #'، '$ 1'، $ ipAddr))؛

}

توصیه شده: