【问题标题】:How can I find the IP address of a mapped network drive in C++?如何在 C++ 中找到映射网络驱动器的 IP 地址?
【发布时间】:2011-04-01 16:41:18
【问题描述】:

我有一个用于默认输入数据目录(X:\Data;Y:\Data;Z:\Data)的可能路径列表。所有可能的路径都是映射的网络驱动器。我可以使用GetDriveType(pathStr) == DRIVE_REMOTE 进行检查。为了确定最佳路径,我通过仅选择存在的路径来缩小列表范围。有时列表中会留下不止一个路径,所以要确定那个时候最好的路径,我想找到驱动器映射到的服务器的 IP 地址,这样我就可以将它与我自己的 IP 地址进行比较.例如,如果我将X:\ 映射到\\RemoteComputer\ShareName,我如何从字符串X:\Data 中找出RemoteComputer 的名称或IP 地址? (我已经能够从计算机名称中找到 IP 地址)。

【问题讨论】:

    标签: c++ windows ip-address mapped-drive


    【解决方案1】:

    WNetGetUniversalName 是一种可能性。

    【讨论】:

    • 谢谢!这正是我所需要的。对于其他找到此答案的人,我遇到的唯一问题是它只接受带有反斜杠的路径(没有正斜杠),并且错误消息是 87(在错误代码中查找:ERROR_INVALID_PARAMETER)。它不会告诉你哪个参数无效,也不会说参数出了什么问题,而是改成反斜杠修复了它。
    【解决方案2】:

    请记住,并非所有(但绝大多数)UNC 路径都以计算机名称开头。一些像 WebDav 是 FQDN - 其他像 TS 远程处理(即 \tsclient\c)根本​​不是机器,只是 RDBSS 识别的令牌。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-19
      • 2021-10-25
      • 2021-06-04
      • 1970-01-01
      相关资源
      最近更新 更多