Как я могу найти IP-адрес подключенного сетевого диска в C ++? - PullRequest
1 голос
/ 20 августа 2010

У меня есть список возможных путей, которые можно использовать для каталога входных данных по умолчанию (X: \ Data; Y: \ Data; Z: \ Data).Все возможные пути отображаются сетевыми дисками.Я могу проверить это, используя GetDriveType(pathStr) == DRIVE_REMOTE.Чтобы определить лучший, я сузил список, выбрав только существующие пути.Иногда в списке остается более одного пути, поэтому для определения наилучшего на тот момент я хочу найти IP-адрес сервера, на который сопоставлен диск, чтобы я мог сравнить его с моим собственным IP-адресом,Например, если у меня X:\ сопоставлено с \\RemoteComputer\ShareName, как я могу узнать из строки X:\Data имя или IP-адрес RemoteComputer?(У меня уже есть возможность найти IP-адрес по имени компьютера).

Ответы [ 2 ]

3 голосов
/ 20 августа 2010

WNetGetUniversalName - одна возможность.

0 голосов
/ 21 августа 2010

Имейте в виду, что не все (но подавляющее большинство) путей UNC начинаются с имени компьютера. Некоторые, такие как WebDav, являются полными доменными именами, другие, как TS remoting (т. Е. \ Tsclient \ c), вовсе не машина, а просто маркер, который распознает RDBSS.

...