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
答案 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")