با استفاده از Laravel GeoIP موقعیت جغرافیایی کاربر را تعیین کنید

13 خرداد 1398, خواندن در 1 دقیقه

اخیرا نیاز به بررسی موقعیت جغرافیایی کاربر برای تعیین موقعیت محلی آنها داشتم. پکیج torann/geoip ساخته شده توسط Daniel Stainblack بسیار برای انجام این کار در برنامه های Laravel 5 مناسب بود.

پکیج Laravel GeoIP خدماتی مانند ip-api.com به طور پیشفرض، یک دیتابیس قابل دانلود Maxmind و Maxmind AOU را پشتیبانی می کند. همچنین می توانید از طریق پیکربندی ها خدمات سفارشی سازی شده نیز اضافه کنید.

کاربرد پایه این پکیج فراخوانی geoip() است، که در صورت تمایل یک آدرس IP را ارسال می کند. کد زیر، مثالی از آبجکت باز گردانده شده بر حسب موقعیت مکانی IP است.

\Torann\GeoIP\Location {

    #attributes:array [
        'ip'           => '232.223.11.11',
        'iso_code'     => 'US',
        'country'      => 'United States',
        'city'         => 'New Haven',
        'state'        => 'CT',
        'state_name'   => 'Connecticut',
        'postal_code'  => '06510',
        'lat'          => 41.28,
        'lon'          => -72.88,
        'timezone'     => 'America/New_York',
        'continent'    => 'NA',
        'currency'     => 'USD',
        'default'      => false,
    ]
}

همانطور که میبینید، آبجکت Location داده هایی در زمینه جغرافیایی دارد، که برای تعیین موقعیت کاربر، منطقه زمان او، و کد ISO کشورش کاربرد دارد.

یک موقعیت پشتیبان نیز برای زمانی که هیچ موقعیتی یافت نشد موجود می باشد، که پارامتر default مقدار را true قرار می دهد. می توانید پیکربندی های پیشفرض را که به این صورت است، تغییر دهید:

'default_location' => [
    'ip' => '127.0.0.0',
    'iso_code' => 'US',
    'country' => 'United States',
    'city' => 'New Haven',
    'state' => 'CT',
    'state_name' => 'Connecticut',
    'postal_code' => '06510',
    'lat' => 41.31,
    'lon' => -72.92,
    'timezone' => 'America/New_York',
    'continent' => 'NA',
    'default' => true,
    'currency' => 'USD',
],

می توانید سورس کد پکیج را در گیت هاب ببینید، تا به شما در شروع کار کمک کند.

منبع

چه امتیازی به این مقاله می دید؟
خیلی بد
بد
متوسط
خوب
عالی

دیدگاه‌ها و پرسش‌ها

برای ارسال دیدگاه لازم است، ابتدا وارد سایت شوید.

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

آفلاین
user-avatar
عرفان کاکایی @er79ka
دنبال کردن

گفتگو‌ برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن وارد شو