التحقق من صحة عنوان IP أو اسم المضيف الذي يديره المستخدم عبر C#
-
28-09-2019 - |
سؤال
في اثنين من الحقول في تطبيق Windows Forms ، أطلب من المستخدم توفير عنوان IP أو اسم مضيف. هل هناك تعبير منتظم جيد (regex) للتحقق من صحة القيمة التي تم إدخالها؟ أم أن هناك طريقة أخرى يجب أن أفكر فيها؟ يرجى ملاحظة أنني أفضل أن يدخل المستخدم fqdn أو عنوان IP.
المحلول
من مصلحة تقديم طلبك في المستقبل ، أقترح فقط استخدام IPAddress.TryParse()
لتحديد ما إذا كان الإدخال هو عنوان IP.
يعد التحقق من اسم مضيف "صالح" أكثر صعوبة ، أيضًا لأنك لم تحدد ما إذا كان اسم المضيف يجب أن يكون موجودًا أم لا. إذا كان الأمر كذلك ، فإن أسهل طريقة هي الاستخدام Dns.GetHostEntry()
لمعرفة ما إذا كان ذلك يعطي نتيجة. لا يمكنك الحصول على التحقق من صحة أكثر دقة بناءً على الوصف الذي قدمته.
نصائح أخرى
حاول أن تتصل ipaddress.Tryparse ، إذا فشلت حاول ذلك dns.gethostbyname