التحقق من صحة عنوان IP أو اسم المضيف الذي يديره المستخدم عبر C#

StackOverflow https://stackoverflow.com/questions/3061620

  •  28-09-2019
  •  | 
  •  

سؤال

في اثنين من الحقول في تطبيق Windows Forms ، أطلب من المستخدم توفير عنوان IP أو اسم مضيف. هل هناك تعبير منتظم جيد (regex) للتحقق من صحة القيمة التي تم إدخالها؟ أم أن هناك طريقة أخرى يجب أن أفكر فيها؟ يرجى ملاحظة أنني أفضل أن يدخل المستخدم fqdn أو عنوان IP.

هل كانت مفيدة؟

المحلول

من مصلحة تقديم طلبك في المستقبل ، أقترح فقط استخدام IPAddress.TryParse() لتحديد ما إذا كان الإدخال هو عنوان IP.

يعد التحقق من اسم مضيف "صالح" أكثر صعوبة ، أيضًا لأنك لم تحدد ما إذا كان اسم المضيف يجب أن يكون موجودًا أم لا. إذا كان الأمر كذلك ، فإن أسهل طريقة هي الاستخدام Dns.GetHostEntry() لمعرفة ما إذا كان ذلك يعطي نتيجة. لا يمكنك الحصول على التحقق من صحة أكثر دقة بناءً على الوصف الذي قدمته.

نصائح أخرى

لماذا تحتاج إلى طلب عنوان IP ولاسم المضيف لتطبيق نموذج Windows؟ إذا كانت هذه هي تفاصيل الكمبيوتر المحلي ، فيمكنك الحصول عليها من:-

1) للحصول على اسم المضيف ، يمكنك الاتصال dns.gethostname () (نرى مرجع MSDN)

2) للحصول على عنوان IP ، يمكنك تعداد عنوان IP عبر dns.gethostbyname () (نرى مرجع MSDN)

حاول أن تتصل ipaddress.Tryparse ، إذا فشلت حاول ذلك dns.gethostbyname

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top