Как я могу программно преобразовать псевдоним сервера MSSQL в IP-адрес, используя .NET? - PullRequest
0 голосов
/ 06 января 2009

Windows-установка по умолчанию поставляется с MSSQL-клиент имеет приложение cliconfg, которое используется для установки псевдонимов IP-адресов и портов серверов. Иногда мы используем в наших ConnectionStrings некоторые из этих псевдонимов вместо IP-адреса, порта. Как я могу программно перевести этот псевдоним в адрес с помощью .NET?

Обновление: .NET + Windows автоматически выполняет этот перевод, когда мы используем ConnectionString, но я не знаю, записан ли результат перевода (IP-адрес) в какое-либо общедоступное свойство, где мы можем прочитайте это.

Обновление: Я обнаружил, что cliconfg хранит псевдонимы в реестре Windows. Интересно, доступен ли реестр Windows из .NET

32bit HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo

64bit HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSSQLServer\Client\ConnectTo

Ответы [ 2 ]

1 голос
/ 07 января 2009

Я нашел следующее решение для 32-битных версий Windows:

using Microsoft.Win32;

static void Main(string[] args)
{
        var Aliases = Registry.LocalMachine.OpenSubKey(
            @"SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo");
        Aliases.GetValue("Alias");
}
0 голосов
/ 07 января 2009

Пока порт вам не нужен, получить IP-адрес довольно просто, используя класс System.Net.Dns:

IPAddress[] ips = Dns.GetHostAddresses("myHostName")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...