我正在编写一个小型数据库管理程序。
如果您提供数据库,它可以正常工作,但如果您不知道安装了哪个数据库,则效果不佳。
如何枚举所有正在运行的数据库?
例如程序的输出:
Port xy MS-SQL Server 2005
Port ab Postgre SQL Server
Port cd MySQL Server
Port ef MS-SQL 2008 Express Server
Port gh Oracle Server
为了枚举 sql server 实例(这就是我认为你的意思),你可以找到有关如何执行此操作的各种示例,这些示例依赖于 Sql Server Browser 服务,另一种方法是使用 SQLDMO。
from MSDN http://msdn.microsoft.com/en-us/library/a6t1z9x2.aspx:
using System.Data.Sql;
class Program
{
static void Main()
{
// Retrieve the enumerator instance and then the data.
SqlDataSourceEnumerator instance =
SqlDataSourceEnumerator.Instance;
System.Data.DataTable table = instance.GetDataSources();
// Display the contents of the table.
DisplayData(table);
Console.WriteLine("Press any key to continue.");
Console.ReadKey();
}
private static void DisplayData(System.Data.DataTable table)
{
foreach (System.Data.DataRow row in table.Rows)
{
foreach (System.Data.DataColumn col in table.Columns)
{
Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);
}
Console.WriteLine("============================");
}
}
}
如果您寻找更多,即能够检测 mysql/oracle 等。通过网络然后使用更通用的工具,例如nmap http://nmap.org/可能更合适。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)