كيف يمكنني العثور على عنوان IP لمحرك الشبكة المعين في C ++؟
-
30-09-2019 - |
سؤال
لدي قائمة بالمسارات الممكنة لاستخدامها في دليل بيانات الإدخال الافتراضي (x: data ؛ y: data ؛ z: data). جميع المسارات المحتملة هي محركات أقراص الشبكة. يمكنني التحقق من هذا باستخدام GetDriveType(pathStr) == DRIVE_REMOTE
. لتحديد الأفضل ، قمت بتضييق القائمة من خلال تحديد المسارات الموجودة فقط. في بعض الأحيان يكون هناك أكثر من مسار واحد في القائمة ، لذا لتحديد أفضل مسار في تلك المرحلة ، أريد أن أجد عنوان IP للخادم الذي يتم تعيين محرك الأقراص إليه ، حتى أتمكن من مقارنته بعنوان IP الخاص بي . على سبيل المثال ، إذا كان لدي X:\
تعيين ل \\RemoteComputer\ShareName
, ، كيف يمكنني معرفة ذلك من السلسلة X:\Data
إما اسم أو عنوان IP لـ RemoteComputer
؟ (لدي بالفعل القدرة على العثور على عنوان IP من اسم الكمبيوتر).
المحلول
WNetGetUniversalName
هو احتمال واحد.
نصائح أخرى
ضع في اعتبارك ، هذا ليس الكل (لكن الغالبية العظمى) من مسارات UNC تبدأ باسم الكمبيوتر. البعض مثل WebDav ، هو FQDN - البعض الآخر مثل TS Remoting (أي tsclient c) ليست آلة على الإطلاق ، مجرد رمز تعترف به RDBSS.