[英]How can I find whether SQL Server is installed in a system on a network by using the IP address?
[英]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.