如何使用.NET以编程方式将MSSQL服务器别名转换为IP地址?

时间:2009-01-06 16:09:27

标签: c# .net sql-server windows

Windows默认安装附带 MSSQL客户端有一个cliconfg应用程序,用于设置服务器IP地址和端口的别名。有时我们在ConnectionStrings中使用一些别名而不是IP地址,端口。如何使用.NET以编程方式将该别名转换为地址?

更新:当我们使用ConnectionString时,.NET + Windows会自动执行此转换,但我不知道转换的结果(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 个答案:

答案 0 :(得分:1)

我为32位版本的Windows找到了以下解决方案:

using Microsoft.Win32;

static void Main(string[] args)
{
        var Aliases = Registry.LocalMachine.OpenSubKey(
            @"SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo");
        Aliases.GetValue("Alias");
}

答案 1 :(得分:0)

只要您不需要端口,使用System.Net.Dns类获取IP地址是相当简单的:

IPAddress[] ips = Dns.GetHostAddresses("myHostName")