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

السؤال

نشر (معدل)

السلام عليكم 

اريد لو تكرمتم طريقك الوصول الى معلومات المستخدم مثل البلد واللغه، سمعت ان في مواقع متخصثه لتقديم هذه المعلومات عبد تزويدها بعنوان اي بي المستخدم فتقوم هي بارسال المعلومات، ولكن جربت الاتصال بهذه المعلومات بالاجاكس ولم انجح

هل استطيع الحصول على هذه المعلومات من السيرفر المحلي وماهي المواقع التي تقدم هذه الخدمه مجانا بدون الدفع

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال

Recommended Posts

  • 0
نشر

لمعرفة الدولة، يمكن استخدام API مجاني:

https://www.iplocate.io/api/lookup/8.8.8.8
                                   ^^^^^^^ = IP

وهذا يعيد JSON كالتالي:

{"ip":"8.8.8.8","country":"United States","country_code":"US",
"city":null,"continent":"North America","latitude":37.751,"longitude":-97.822,
"time_zone":"America/Chicago",
"postal_code":null,"org":"GOOGLE","asn":"AS15169","subdivision":null,"subdivision2":null}

حيث يمكنك الوصول للدوالة من الخاصية country.

$.getJSON('https://www.iplocate.io/api/lookup/8.8.8.8', 
function(json) {
    alert(json.country);
});

lمثال آخر ipinfo واستخدامها في PHP:

$ip = $_SERVER['REMOTE_ADDR'];
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}"));
echo $details->country; // -> "US"

لمعرفة اللغة، يمكن استخدام GeoIP كالتالي:

if($country = geoip_country_code_by_name($host))
{
    switch($country)
    {
        case "DJ":
        case "ER":
        case "ET":

            $lang = "aa";
            break;

        case "AE":
        case "BH":
        case "DZ":
        case "EG":
        case "IQ":
        case "JO":
        case "KW":
        case "LB":
        case "LY":
        case "MA":
        case "OM":
        case "QA":
        case "SA":
        case "SD":
        case "SY":
        case "TN":
        case "YE":

            $lang = "ar";
            break;

        case "AZ":

            $lang = "az";
            break;

        case "BY":

            $lang = "be";
            break;

        case "BG":

            $lang = "bg";
            break;

        case "BD":

            $lang = "bn";
            break;

        case "BA":

            $lang = "bs";
            break;

        case "CZ":

            $lang = "cs";
            break;

        case "DK":

            $lang = "da";
            break;

        case "AT":
        case "CH":
        case "DE":
        case "LU":

            $lang = "de";
            break;

        case "MV":

            $lang = "dv";
            break;

        case "BT":

            $lang = "dz";
            break;

        case "GR":

            $lang = "el";
            break;

        case "AG":
        case "AI":
        case "AQ":
        case "AS":
        case "AU":
        case "BB":
        case "BW":
        case "CA":
        case "GB":
        case "IE":
        case "KE":
        case "NG":
        case "NZ":
        case "PH":
        case "SG":
        case "US":
        case "ZA":
        case "ZM":
        case "ZW":

            $lang = "en";
            break;

        case "AD":
        case "AR":
        case "BO":
        case "CL":
        case "CO":
        case "CR":
        case "CU":
        case "DO":
        case "EC":
        case "ES":
        case "GT":
        case "HN":
        case "MX":
        case "NI":
        case "PA":
        case "PE":
        case "PR":
        case "PY":
        case "SV":
        case "UY":
        case "VE":

            $lang = "es";
            break;

        case "EE":

            $lang = "et";
            break;

        case "IR":

            $lang = "fa";
            break;

        case "FI":

            $lang = "fi";
            break;

        case "FO":

            $lang = "fo";
            break;

        case "BE":
        case "FR":
        case "SN":

            $lang = "fr";
            break;

        case "IL":

            $lang = "he";
            break;

        case "IN":

            $lang = "hi";
            break;

        case "HR":

            $lang = "hr";
            break;

        case "HT":

            $lang = "ht";
            break;

        case "HU":

            $lang = "hu";
            break;

        case "AM":

            $lang = "hy";
            break;

        case "ID":

            $lang = "id";
            break;

        case "IS":

            $lang = "is";
            break;

        case "IT":

            $lang = "it";
            break;

        case "JP":

            $lang = "ja";
            break;

        case "GE":

            $lang = "ka";
            break;

        case "KZ":

            $lang = "kk";
            break;

        case "GL":

            $lang = "kl";
            break;

        case "KH":

            $lang = "km";
            break;

        case "KR":

            $lang = "ko";
            break;

        case "KG":

            $lang = "ky";
            break;

        case "UG":

            $lang = "lg";
            break;

        case "LA":

            $lang = "lo";
            break;

        case "LT":

            $lang = "lt";
            break;

        case "LV":

            $lang = "lv";
            break;

        case "MG":

            $lang = "mg";
            break;

        case "MK":

            $lang = "mk";
            break;

        case "MN":

            $lang = "mn";
            break;

        case "MY":

            $lang = "ms";
            break;

        case "MT":

            $lang = "mt";
            break;

        case "MM":

            $lang = "my";
            break;

        case "NP":

            $lang = "ne";
            break;

        case "AW":
        case "NL":

            $lang = "nl";
            break;

        case "NO":

            $lang = "no";
            break;

        case "PL":

            $lang = "pl";
            break;

        case "AF":

            $lang = "ps";
            break;

        case "AO":
        case "BR":
        case "PT":

            $lang = "pt";
            break;

        case "RO":

            $lang = "ro";
            break;

        case "RU":
        case "UA":

            $lang = "ru";
            break;

        case "RW":

            $lang = "rw";
            break;

        case "AX":

            $lang = "se";
            break;

        case "SK":

            $lang = "sk";
            break;

        case "SI":

            $lang = "sl";
            break;

        case "SO":

            $lang = "so";
            break;

        case "AL":

            $lang = "sq";
            break;

        case "ME":
        case "RS":

            $lang = "sr";
            break;

        case "SE":

            $lang = "sv";
            break;

        case "TZ":

            $lang = "sw";
            break;

        case "LK":

            $lang = "ta";
            break;

        case "TJ":

            $lang = "tg";
            break;

        case "TH":

            $lang = "th";
            break;

        case "TM":

            $lang = "tk";
            break;

        case "CY":
        case "TR":

            $lang = "tr";
            break;

        case "PK":

            $lang = "ur";
            break;

        case "UZ":

            $lang = "uz";
            break;

        case "VN":

            $lang = "vi";
            break;

        case "CN":
        case "HK":
        case "TW":

            $lang = "zh";
            break;

        default:break;
    }
}

 

  • 1
نشر

 للحصول على تفاصيل مثل البلد والقارة والمدينة و كل المعلومات الخاصة بالزائر  ، تحتاج أولاً إلى الحصول على IP الخاص بالزائر. يمكن الحصول على عنوان IP بمساعدة superglobal $ _SERVER في PHP.

بعد ذلك باستخدام API geoPlugin ، يمكننا الحصول على معلومات حول عنوان IP الخاص بالزائر.


<?php
//  الخاص بالزائر IP هذا الدالة تقوم بإسترجاع 
  
function getVisIpAddr() {
      
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        return $_SERVER['HTTP_CLIENT_IP'];
    }
    else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        return $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else {
        return $_SERVER['REMOTE_ADDR'];
    }
}
  
// في متغير IP تخزين 
$vis_ip = getVisIPAddr();
  
//  IP طباعة 
echo $vis_ip;
   
?>

المرحلة التالية هي استخدم واجهة برمجة التطبيقات للحصول على تفاصيل عنوان IP للزائر: هنا ، سنستخدم واجهة برمجة تطبيقات geoplugin للحصول على تفاصيل الزائر. ستقدم واجهة برمجة التطبيقات كائن json ، والذي يمكن تحويله إلى متغير PHP.

<?php
// كود PHP للحصول على البلد ، المدينة ،
//  IP القارة ، إلخ باستخدام عنوان 
  
$ip = '52.25.109.230';

// استخدم سلسلة JSON المشفرة وتحويلها
//  PHP إلى متغير 

$ipdat = @json_decode(file_get_contents(
    "http://www.geoplugin.net/json.gp?ip=" . $ip));
   
echo 'Country Name: ' . $ipdat->geoplugin_countryName . "\n";
echo 'City Name: ' . $ipdat->geoplugin_city . "\n";
echo 'Continent Name: ' . $ipdat->geoplugin_continentName . "\n";
echo 'Latitude: ' . $ipdat->geoplugin_latitude . "\n";
echo 'Longitude: ' . $ipdat->geoplugin_longitude . "\n";
echo 'Currency Symbol: ' . $ipdat->geoplugin_currencySymbol . "\n";
echo 'Currency Code: ' . $ipdat->geoplugin_currencyCode . "\n";
echo 'Timezone: ' . $ipdat->geoplugin_timezone;
   
?>

سنحصل على النتيجة التالية :

Country Name:    United States
City Name:       Boardman
Continent Name:  North America
Latitude:        45.8491
Longitude:       -119.7143
Currency Symbol: $
Currency Code:   USD
Timezone:        America/Los_Angeles

 

  • 0
نشر
بتاريخ 9 ساعات قال محمد أيت لعرايك:

للحصول على تفاصيل مثل البلد والقارة والمدينة و كل المعلومات الخاصة بالزائر  ، تحتاج أولاً إلى الحصول على IP الخاص بالزائر. يمكن الحصول على عنوان IP بمساعدة superglobal $ _SERVER في PHP.

شكرا اخي جربت الاكواد واشتغلت 

هل تعرف كيف او ماهي واجهه التطبيقات التي تقدم اعلام البلدان api

بتاريخ 11 ساعات قال Wael Aljamal:

لمعرفة الدولة، يمكن استخدام API مجاني:


https://www.iplocate.io/api/lookup/8.8.8.8
                                   ^^^^^^^ = IP

شكرا اخي اشتغل هذا الكود ممتاز جدا 

لمن فيما يتعلق باللغه انت ارسلت كود يعتمد على لغة البلد، انا كنت اقصد لغك هاتف او جهاز المستخدم بغض النظر عن دولك تواجده، هل يمكن الحصول على لغك الجهاز بواسطة جافا سكربت، وكيف يمكن الوصول لكيمرا والميكرفون من خلال حافا سكربت ايضا وشكرا

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...