اذهب إلى المحتوى

السؤال

نشر

مرحبا لنفترض انني اريد معرفة مانوع جهاز وموقعه الذي زار موقعي لتسجيله بقاعدة البيانات دون اذن من المستخدم لفعل ذلك
بمعنى اوضح لنفترض انني لا اريد اي زائر للموقع موقعه الجغرافي خارج نطاق الدول العربية فكيف افعل ذلك
او لا اريد لجماعة ios او mac دخول موقعي هل توفر لارافيل او php هذا الامر؟

Recommended Posts

  • 0
نشر

بالطبع من خلال وكيل المستخدم User Agent، يتوفر في PHP المتغير $_SERVER['HTTP_USER_AGENT'] للحصول على سلسلة وكيل المستخدم للجهاز.

وتحتوي السلسلة على معلومات حول المتصفح ونظام التشغيل ونوع الجهاز، ثم عليك تحليلها لاستخراج المعلومات التي تحتاجها، فمثلاً نستخدم الدالة get_browser() للحصول على مزيد من المعلومات حول المتصفح.

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser = get_browser(null, true);
print_r($browser);
?>

وستحصل على نتيجة مشابهة للتالي:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [cssversion] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)

ستجد تفصيل هنا:

https://www.php.net/manual/en/function.get-browser.php

وللعلم لديك مكتبة ua-parser PHP Library تقوم بنفس الأمر بشكل أفضل.

وبخصوص تحديد بلد الزائر، فستحتاج إلى الحصول على الـ IP الخاص بالزائر ثم فحصه من خلال قاعدة بيانات GeoLite2 Free Geolocation Data أو تحديد عناوين ip في ملف  .htaccess ثم حظرها والأداة التالية IP2Location Firewall IP list tool توفر عناوين IP للدول وتحميل ملف  .htaccess

لكن هناك طريقة أسهل في لارافل، وهي من خلال مكتبة GeoIP for Laravel.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...