اخیرا نیاز به بررسی موقعیت جغرافیایی کاربر برای تعیین موقعیت محلی آنها داشتم. پکیج 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',
],
می توانید سورس کد پکیج را در گیت هاب ببینید، تا به شما در شروع کار کمک کند.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید