• 0
AboSomia

كيف اعرف اسم دولة زائر موقعي

سؤال

السلام عليكم ورحم الله وبركاته

كل عام وانتم بخير وتقبل الله صيامكم وقيامكم

بحثت في الانترنت عن طريقة لمعرفة اسم دولة زائر موقعي لكني وجدت طريقة لمعرفة IP   الزائر فقط

وجدت مواقع لكن المشكلة بفلوس

اتمنى لو تدلوني على مكتبة في ASP.NET تقوم بهذا العمل

او من لديه قاعدة بيانات يستخدمها في مواقعه ومجربه بها جميع الدول ومدى اي بي كل دولة (From ..... TO)

وتقبلوا تحياتي

 

تم تعديل بواسطه AboSomia
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

5 إجابة على هذا السؤال .

  • 0

هناك خدمة GeoLite2 من MaxMind، حيث تقدم قاعدة بيانات مجانية تحدث أول ثلاثاء من كل شهر لأسماء الدول وعناوين الـIP الخاصة بها، مع API للـ.NET.

يمكنك تحميل قاعدة البيانات من صفحة التحميلات، انزل للأسفل عند GeoLite2 Country، حمل قاعدة البيانات وفك الضغط عنها وضعها في مشروعك في فجيول ستديو، اضغط على قاعدة البيانات في الـsolution explorer، ومن Properties عدل Copy to Output Directory إلى Copy if newer كي تنسخ قاعدة البيانات لملف الـbin، ثم ثبت المكتبة الخاصة بها من NuGet باستخدام:

Install-Package MaxMind.GeoIP2 -Pre

تحتاج أن تعرف قارئ البيانات مرة واحدة في أي فئة (thread-safe):

private static readonly DatabaseReader CountriesDatabaseReader = new DatabaseReader("GeoLite2-Country.mmdb");

يمكنك الآن الاستعلام عن أي IP:

var countryResponse = CountriesDatabaseReader.Country("172.217.19.67");

Debug.WriteLine($"ISO code : '{countryResponse.Country.IsoCode}'");
Debug.WriteLine($"    Name : '{countryResponse.Country.Name}'");

عناوين الـIP تتغير لذا تحتاج لتحديث قاعدة البيانات بين فترة وفترة (لديهم خدمة ويب لاتحتاج التحديث لكنها مدفوعة).

تم تعديل بواسطه Mr.B
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الاخ Mr-B

اشكر لك تعاونك وتجاوبك

لكن هناك مشكلة اريد أن اكتب ال IP في TextBox وعند الضغط على Button تظهر اسم الدولة في Label

شاهد الصورة والمشكلة

 

http://store1.up-00.com/2016-07/1467622359771.jpg

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
Me.txtIPAddress.Text = Request.UserHostAdd            
Dim service As New net.webservicex.www.GeoIPService
            Dim output As net.webservicex.www.GeoIP = service.GetGeoIP(txtIPAddress.Text.Trim())
            lblCountry.Text = "Country: " + output.CountryName

..........................................

الكود السابق يعيد ال ip

لكن المشكلة لا يعيد اسم الدولة الصحيحة لل ip

مثلا عندما يكون ip الزائر من السعودية يعيد الدولة الولايات المتحدة

هل توجد مشكلة في الكود؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الكود يعيد أن ال IP تابع للولايات المتحدة

بينما عندما

اجرب ال IP في موقع يقدم خدمة تحديد IP الدولة يظهر اسم دولة اخرى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هذه API لخدمة أخرى ليست نفسها التي أعطيتك إياها (وهي مضمونة حسب تجربتي)، لم يسبق لي التعامل مع الـAPI التي تستخدمها، لكن كون الكود يعمل فلا يبدو لي أن هناك خطأ لديك، قد تكون الـAPI نفسها غير دقيقة.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .