2010-08-20 400 views
1

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

回答

3

WNetGetUniversalName是一种可能性。

+0

谢谢!这正是我需要的。对于其他人找到这个答案,唯一的问题是它只接受带反斜杠的路径(没有正斜杠),错误消息是87(查找错误代码找到:ERROR_INVALID_PARAMETER)。它没有告诉你哪个参数是无效的,并且没有说出参数有什么问题,但是改成反斜杠修正了它。 – Ben 2010-08-20 17:07:13

0

请记住,不是全部(但绝大多数)UNC路径以计算机名称开头。有些人喜欢WebDav,是FQDN--其他人像TS远程(即\ tsclient \ c)根本不是机器,只是RDBSS能够识别的一个标记。