دریافت موقعیت مکانی با IP در PHP

دریافت موقعیت مکانی با IP در PHP

در این آموزش قصد داریم به شما نحوه دریافت موقعیت مکانی با IP در PHP یا همان آدرس یا مکان جغرافیایی (Geolocation) کاربر را نشان بدیم.

برای بدست آوردن موقعیت جغرافیایی ما از یک API خارجی استفاده می کنیم.

این API به توسعه دهنده ها اجازه می دهد که اطلاعات مکانی کاربر را با استفاده از آدرس IP بدست آورده و بتواند بازدیدکنندگان را از طریق اپلیکیشن وب بر اساس موقعیت دسته بندی کند.

این API برای زمانی که قصد مکان یابی بازدیدکنندگان وبسایت و ارایه خدمات بر اساس مکان آنها را دارید بسیار مفید خواهد بود.

مثلا در سیستم چت آنلاین یا سیستم ارسال مرسوله یا خدمات دهی مثل پرداخت بر اساس شهر و کشورهای مختلف و خیلی موارد دریگر بسیار کاربردی است.

 

API های مکان یابی جغرافیایی زیادی برای استفاده و دریافت موقعیت مکانی با IP در PHP وجود داردند که بر اساس IP کار می کنند.

و اینجا ما از ipstack که یکی از بهترین آنها است و پلن رایگان آن ۲هزار درخواست یکتا را در اختیار ما قرار می دهد استفاده می کنیم.

Ipstack خروجی را در فرمت های jSON یا XML برگشت می دهد و می توانید از این API در زبان های برنامه نویسی مختلف مثل PHP یا جاواسکریپت و غیره برای دریافت موقعیت مکانی استفاده کنید.

بنابراین با ادامه آموزش دریافت موقعیت مکانی با IP در PHP با ما همراه باشید تا نحوه پیاده سازی این API در اسکریپت PHP را در قدم های ساده خدمت شما آموزش بدیم.

 

دریافت کلید API

به منظور احراز هویت ipstack API یک کلید دسترسی یکتا نیاز دارید. برای همین قبل از شروع کلید API خود را بسازید.

  • یک اکانت در سایت ipstack ایجاد کنید
  • در داشبورد, می توانید کلید API را از Yor API Access Key دریافت کنید.

دریافت موقعیت مکانی با IP در PHP

پیکربندی API

به منظور دریافت موقعیت مکانی با IP در PHP از API سایت ipstack نیاز است که آدرس آیپی و کلید خود را در کد مشخص کنید.

برای دریافت آیپی کاربر آموزش دریافت IP کاربر در PHP را مطالعه بفرمایید.

  • اضافه کردن آدرس آیپی به Url اصلی
  • مشخص کردن کلید دسترسی در پارامتر access_key

 

ایجاد درخواست HTTP GET

برای دریافت اطلاعات مکانی, نیاز است که API را با ارسال درخواست HTTP GET توسط cURL در PHP فراخوانی کنید.

مطمین شوید آدرس API مشخص شده با https مشخص شده باشد :

 

اطلاعات مکانی و جغرافیایی

بعد از یک درخواست API موفقیت آمیز, اطلاعات مکانی در قالب XML یا jSON برگشت داده می شود.

بطور پیش فرض این وب سرویس, داده های مکانی زیر را برگشت می دهد :

  • آدرس آیپی (ip)
  • نوع (type)
  • کد قاره (continent_code)
  • نام قاره (continent_name)
  • نام کشور (country_code)
  • نام کشور (country_name)
  • کد منطقه (region_code)
  • نام منطقه (region_name)
  • شهر (city)
  • کدپستی (zip)
  • عرض جغرافیایی (latitude)
  • طول جغرافیایی (longitude)
  • مکان (location) :
    • geoname_id
    • capital
    • languages
    • country_flag
    • country_flag_emoji
    • country_flag_emoji_unicode
    • calling_code
    • is_eu

با استفاده از تابع json_decode() می توانید خروجی jSON را به یک آرایه در PHP تبدیل کنید.

 

کد کامل دریافت موقعیت مکانی با IP در PHP

کد php زیر بطور کامل اطلاعات موقعیت جغرافیایی را از طریق IP در PHP را نشان می دهد.

 

جمع بندی

API سایت ipstack برای استفاده تا حدودی رایگان است (برای ۲هزار درخواست ماهانه) , همچنین پلن های پولی نیز برای کاربران حرفه ای که قصد استفاده از آن در پروژه های تجاری بزرگ را نیز ارایه می دهد.

در این مثال, ما داده هایی که بیشترین استفاده دارند را با حداقل تنظیمات از API دریافت کردیم.

شما می توانید پارامترهای اضافه ای را برای سفارشی سازی نتایج و دریافت اطلاعات اضافی بر حسب نیاز را به کار ببرید که اطلاعات بیشتر در داکیومنت ipstack ببینید.

امیدوارم از آموزش دریافت موقعیت مکانی با IP در PHP نهایت استفاده را برده باشید.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۸)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. امیرحسین سفیدگر ۲۴ مهر ۱۴۰۲

    سلام
    ممنون خیلی مفید بود.
    چند تا سوال برام پیش اومده میخام ازتون بپرسم
    ۱- اگر کاربر با استفاده از ف.شکن وارد سایت ما بشه لوکیشن کاربر باز هم درسته؟؟؟
    ۲- حالا اگر بخواهیم شرط بزاریم که اگر کاربر مثلا در محدوده برج میلاد بود چاپ کن ok در غیر این صورت چاپ کن no ؟ این رو چطور میتونیم هندل کنیم؟؟؟؟

    پاسخ
    1. حسن شفیعی ۲۵ مهر ۱۴۰۲

      سلام. خوشحالیم که مفید واقع شده
      ۱٫لوکیشن اون ف.شکل نمایش میده
      ۲٫یه شرط if ساده

      پاسخ
  2. عاطفه ۸ مهر ۱۴۰۲

    سلام خسته نباشید
    چون تحریم هستیم در سایت ipstack کشور ایران وجود نداره برای به دست آوردن موقعیت مکانی چه راهی رو پیشنهاد میدین؟

    پاسخ
    1. حسن شفیعی ۲۳ مهر ۱۴۰۲

      سلام ممنون
      سایت ipapi.co

      پاسخ
  3. سجاد ۲۶ خرداد ۱۴۰۱

    سلام. چطور میشه که ما ip کاربری که صفحه رو بازدید میکنه بگیریم؟

    پاسخ
    1. حسن شفیعی ۲۶ خرداد ۱۴۰۱

      سلام
      $_SERVER[‘REMOTE_ADDR’]
      این متغییر سراسری آیپی کاربر رو داره

      پاسخ
  4. ش.ش ۲۲ اسفند ۱۳۹۸

    سلام
    وقت بخیر
    عالیه مثل بقیه پست هاتون

    راستی
    در آخر از اسکریپت خروجی گرفتن رو توی کدها وراد نکردید و کاربر های مبتدی ممکنه نفهمن کد مشکلی نداره
    منظورم پرینت هست
    مثلا
    print_r($api_result);

    پاسخ
    1. حسن شفیعی ۲۲ اسفند ۱۳۹۸

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

      پاسخ
دوره های آموزشی