簡體   English   中英

如何使用.NET以編程方式將MSSQL服務器別名轉換為IP地址?

[英]How can I programatically translate a MSSQL server alias to an IP address using .NET?

MSSQL客戶端 附帶 Windows默認安裝 程序具有cliconfg應用程序,該應用程序用於為服務器IP地址和端口設置別名。 有時我們在ConnectionStrings中使用其中的一些別名,而不是IP地址,端口。 如何使用.NET以編程方式將該別名轉換為地址?

更新: .NET + Windows在使用ConnectionString時會自動執行此轉換,但是我不知道轉換結果(IP地址)是否寫在我們可以讀取它的任何公共屬性中。

更新:我發現cliconfg將別名存儲在Windows注冊表中。 我想知道是否可以從.NET訪問Windows注冊表。

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

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

我為Windows 32位版本找到了以下解決方案:

using Microsoft.Win32;

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

只要不需要端口,使用System.Net.Dns類獲取IP地址就很簡單了:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM