[英]How get IP address or DNS name of SQL Server by connection?
我想知道我的應用何時在SQL Server上本地運行。 備份和還原是必需的。
我從Connection.DataSource獲取服務器的IP地址(DNS名稱)。 然后我檢查列表中是否有此名稱:
localNames = new List<string>()
{
".", "localhost", "(local)", "127.0.0.1", Environment.MachineName.ToLower(),
};
localNames.AddRange(GetIP().Select(a=>a.ToString()));
if (localNames.Contains(GetServer(connection.DataSource).ToLower()))
{
//do something
}
方法:
IEnumerable<IPAddress> GetIP()
{
foreach (var ip in Dns.GetHostEntry(Dns.GetHostName()).AddressList.Where(ip => ip.AddressFamily == AddressFamily.InterNetwork))
{
yield return ip;
}
}
string GetServer(string dataSource)
{
return dataSource.Split('\\').First().Split(',').First().Split(':').Last();
}
數據源可以是:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.