تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] تحديد بلد المستخدم
#1
السلام عليكم

اخواني واجهتني مشكلة في تحديد بلد المستخدم الذي يستعمل برنامجي عن طريق الكود
قرأت عن هذا الموضوع ووجدته عن طريق استخدام ip address وعن طريق استخراج رقم منه واستخدام قاعدة بيانات واستخدام الرقم في تحديد البلد فلكل بلد ارقام معينه ... ارجوا ممن لديه خبره او فكره او اي معلومه في هذا الرد ومساعدتني واكون لكم مشكورا
الرد }}}
تم الشكر بواسطة: سعود
#2
سلام

جرب هذا الكود
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    MsgBox(IPCountry)
End Sub

Private Function IPCountry() As String
    On Error Resume Next
    Dim src As String = New Net.WebClient().DownloadString("http://www.ipinfodb.com/")
    Return System.Text.RegularExpressions.Regex.Match(src, "(?<=Country :).+?(?=<)").Value.Trim
End Function

موفقين
متغيب
الرد }}}
تم الشكر بواسطة: سعود , مبرمج بلا حدود
#3
اخي الطالب هل ممكن شرح كيف عمل الباترن هذا

PHP كود :
(?<=Country :).+?(?=<)") 

اطلعت على مصدر الصفحة ولم اجد علامة يساوي=
PHP كود :
<li>Country Saudi Arabia <img src="/img/flags/sa.gif"/></li
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#4
سلام


بصراحه لقيتها جاهزه ومعرفتي فيها بسيطه

وهذا شرح بسيط للباترن
كود :
(?<=Country :).+?(?=<)

هذا الباترن بياخذ قيمه بين (بدايه) و(نهايه) محدده بالاقواس

البدايه هي
كود :
(?<=Country :)
يقول حدد من ما بعد النص التالي
كود :
Country :
وامر (ما بعد) هو
كود :
?<=

وهنا عرفنا مكان بدايت المؤشر


النهايه هي
كود :
(?=<)
حدد من ما قبل النص التالي وهنا فقط حرف
كود :
<
وامر (ما قبل) هو
كود :
?=

بقي الجزء اللي بينهم وهو
كود :
.+?
لكنها تحتوي حاجتين
الاولى
كود :
.+
والثانيه
كود :
?

الاولى
تعني ان (.) هي اي حرف و (+) تعني مكرر مره او اكثر
ومع بعضهم تعني اي حرف مكرر مره او اكثر
وممكن نستخدم (*) بدل (+) تعطي نفس النتيجه
ولكن النجمه معناها سواء لقيت اي حرف سواء مكرر اولا او ما لقيت اي حرف

الثانيه
هي (؟) ووجوده قبل النهايه تعني هنا سوف يتوقف المؤشر عند اول مطابقه لل (النهايه)
وكما وضحنا ان النهايه هي البحث عن الحرف (>)
يعني يتوقف عند اول حرف (>) يلاقيها

والى هنا عرفنا مكان مؤشر النهايه


يمكن تتلخبط بسبب وجود (>) داخل قوس (البدايه) وقوس (النهايه)
لكانه في قوس (البدايه) كانت (جزء من امر)
وفي قوس (النهايه) كان (حرف)

المراجع:
http://vb4arb.com/vb/thread-467.html?highlight=regex
http://files.books.elebda3.net/elebda3.net-5647.pdf
http://stackoverflow.com/questions/10804...d-in-regex
http://www.rexegg.com/regex-quickstart.html


يعني جوابا على سؤالك كانت العلامه = جزء من امر وليست حرفا


اعذرني اذا ما فهمت عليا لان شرحي مش ولا بد


موفقين
متغيب
الرد }}}
تم الشكر بواسطة: سعود , مبرمج بلا حدود
#5
بارك الله فيك..كفيت ووفيت.
اهم نقطة الفرق بين  <  (كحرف او كامر) يستخدمه الـ Regex
اتضح الغموض ولله الحمد.

حاولت استخدم الطريقة المختصرة ولم اعرف
PHP كود :
<div class="mapcat">Country:</div>
<
div class="mapvalue">Saudi Arabia</div
اقصد  الباترن لم اتمكن من صياغته بشكل صحيح .
ياترى كيف سيكون لهذا النص.
http://ip-address-lookup-v4.com/
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: مبرمج بلا حدود
#6
سلام

لان معرفتي في الباترن بسيطه
اظطررت للتخلص من تعدد الاسطر بحذف vbnewline لاستطيع حلها
كود :
Replace(vbNewLine, "")

ثم تطبيق الباترن
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   MsgBox(IPCountry)
End Sub

Private Function IPCountry() As String
   On Error Resume Next
   Dim src As String = New Net.WebClient().DownloadString("http://ip-address-lookup-v4.com/")
   Return System.Text.RegularExpressions.Regex.Match(src.Replace(vbNewLine, ""), "(?<=Country:</div>?\s+<div class=""mapvalue"">).+?(?=<)").Value.Trim
End Function

الجديد في هذا الباترن هنا s\ وتعي المسافه ووضع + وتعني التكرار
لانه حيكون فيه تقريبا 20 مسافات في وسط النص بعد حذف vbnewline


ملاحظه:
هذا الموقع ip-address-lookup-v4.com اعطاني romania من اني في السعوديه - طبعا حسب الايبي اللي انا شابك فيه حاليا
هذا الموقع متاخر في تحديث بيناته في قاعدت بياناته لهذا قد يعطيك اسم البلد قديم
لان الاي بي احيانا يعطي لشخص اخر او شركه اخرى في بلد اخر

لكن في الموقع ipinfodb.com اعطاتي saudi arabia - طبعا حسب الايبي اللي انا شابك فيه حاليا


يعني الدقه تعتمد على سرعت تحديث قاعدت بيانات الموقع اللي يقدم الخدمه


موفقين
متغيب
الرد }}}
تم الشكر بواسطة: مبرمج بلا حدود , سعود
#7
ماشاء الله هذا الحل.
بالنسبة لي اضطررت لوضع الجملة الاولى كاملة.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف تصمم واجهات برامجك بطريقة الكبار .. مقدمة في تصميم واجهات المستخدم ali.alfoly 11 7,779 09-10-25, 08:24 AM
آخر رد: مصمم هاوي
  مساعدة في تمرير اسم المستخدم سيد أحمد 3 959 01-07-25, 12:51 AM
آخر رد: أبو خالد الشكري
  كيف يمكن اضافة عناصر للكومبوبوكس اثناء تشغيل البرنامج عن طريق المستخدم haithammoftah 3 2,168 30-09-24, 12:52 AM
آخر رد: asmarsou
  أريد تحديد صلاحيات المستخدمين عن طريق حقل في جدول قاعدة البيانات F.H.M 0 330 12-09-24, 06:29 PM
آخر رد: F.H.M
  معرفة حجم ملف PDF تم تحديد مساره modymody300894 1 302 10-08-24, 03:35 PM
آخر رد: ميدو الفنان
  [VB.NET] ارغب في كود إلزام المستخدم ادخال الأرقام محصور بعددين loay775 2 563 18-01-24, 05:02 PM
آخر رد: loay775
  تحديد موقع ملف user.config واعدة توجيهه لموقع آخر Mohammed Nafa 3 753 07-11-23, 10:12 PM
آخر رد: Mohammed Nafa
  [كود] ما الخطأ فى الـ Functions المستخدم فى vb.net 2010 AhmedEissa 9 1,116 21-10-23, 11:44 PM
آخر رد: Ahmed5
  إجبار المستخدم على إدخال عدد معين من الأرقام Ahmed.vb 6 1,144 20-10-23, 10:25 AM
آخر رد: atefkhalf2004
  [VB.NET] كيف اقوم بمنع المستخدم من استخدام الكيبورد وخصوصا مفتاح Print screen Ameenh 0 499 07-10-23, 10:45 PM
آخر رد: Ameenh

التنقل السريع :


يقوم بقرائة الموضوع: