枚举所有正在运行的数据库

2024-03-16

我正在编写一个小型数据库管理程序。 如果您提供数据库,它可以正常工作,但如果您不知道安装了哪个数据库,则效果不佳。

如何枚举所有正在运行的数据库?

例如程序的输出:



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(使用前将#替换为@)

枚举所有正在运行的数据库 的相关文章

随机推荐

  • 在 Neo4J Cypher 2.0 中创建多个节点/边时发出一个 MERGE 请求更好,还是将其拆分为事务更好?

    我有一个很长的 Cypher 查询 新的 Neo4J 2 0 版本 它使用 MERGE 命令创建多个节点和连接 问题是 您认为我最好将其分成不同的部分并将其作为交易提交 为了稳健性 还是应该保留长的单个交易 为了速度 这是查询 MATCH
  • 将逗号(,)放在数组末尾。这是约定吗?

    有时我会看到如下所示的数组 array item1 gt array subitem1 subitem2 为什么数组末尾添加了逗号 而submit m2后没有元素 它使得稍后添加另一个条目变得更加容易
  • Android 圆形复选标记动画

    我正在尝试实现类似的目标BEM动画类型描边可以在 iOS 库中找到BEM复选框 https github com Boris Em BEMCheckBox 我尝试使用动画矢量可绘制对象来实现此目的 但我不知道如何对圆内的复选标记进行动画处理
  • x86 asm:如何将 reg 设置为非 SIB 支持的偏移量?

    我有一个数组a24 字节结构体 排列无填充 以便结构体 1 在结构体 0 之后 24 个字节处开始 void a 1 void a 0 24 rbx保存结构体的索引 我想设置rdi to a rbx 24 and rsi to a rbx
  • 如何在 Startup.Configure 中处理异步操作?

    在我的 ASP NET 5 应用程序中 我想将一些数据从 Azure 加载到 Startup Configure 方法内的缓存中 Azure SDK 专门公开异步方法 通常 调用异步方法是通过异步方法内的等待完成的 如下所示 public
  • 在 if() 内调用方法 - C#

    我有几个方法根据它们的成功返回一个 bool 在 IF 内部调用这些方法有什么问题吗 makes sure that Method2 will only get called if Method1 returned true use to
  • 如何防止在表单加载时选择 datagridview 单元格

    如何在表单加载时不选择 datagridview 单元格 我已经尝试了太多 我的 dgvproducts 属性是 readonly false selection mode CellSelect 1 我已将此代码放入form shown事件
  • 如何将 .pdf 和 .jpg 文件合并为一个 pdf

    磁盘上有两个文件 jpg和 pdf 我需要读取这两个文件并将它们添加到新的pdf中并发送到浏览器以便可以下载 新的 pdf 文件仅包含 pdf 内容 不包含 jpeg 文件图像 memoryStream myMemoryStream new
  • 为什么 mysql JDBC 驱动程序返回 TRANSACTION_READ_COMMITTED 作为默认隔离级别

    据我所知 Mysql DB 的默认事务隔离级别是 REPEATABLE READ 看Mysql 事务隔离级别 https dev mysql com doc refman 8 0 en innodb transaction isolatio
  • 使用 FOSRestBundle 返回响应时无法找到模板

    我正在使用 FOS Rest Bundle 构建 Api 问题是每次我尝试返回任何内容时都会收到错误消息 无法找到模板 我真的不想渲染模板 而是序列化我拥有的实体 这是我的代码 路由 yml acme api register patter
  • 将 2 个数字相乘,然后求和

    我很难尝试做一些看起来应该很容易做的事情 我基本上想将一个节点中的 2 个数字相乘 然后将所有节点的这些数字相加 这是我尝试过的 XSLT 代码
  • 使用 ncurses 时未定义对“stdscr”的引用

    我正在尝试在 Ubuntu 11 10 中编译我的代码并收到这些错误等等 到目前为止 通过谷歌搜索我认为这是一个链接错误 具体来说 有人建议确保您拥有正确的标头并链接 lncurses 库 我已经这么做了 我仍然收到此错误 我还读到也许我应
  • git reset --soft 的实际用途?

    我使用 git 已经有一个多月了 事实上 我昨天才第一次使用重置 但软重置对我来说仍然没有多大意义 我知道我可以使用软重置来编辑提交 而无需更改索引或工作目录 就像我所做的那样git commit amend 这两个命令真的一样吗 rese
  • C++20 范围和排序

    我正在处理 C 20 的最后 4 个大版本 试图学习新的主要功能 尝试来自网络的一些与范围相关的代码 我写了 std vector ints 6 5 2 8 auto even int i return 0 i 2 ranges auto
  • 在 MongoDB 中的对象中插入数组

    我是 MongoDB 的新手 我想像这样插入 mongodb 数据 但我不知道如何做 image cab tags NNP 0 NN 1 image castle tags NNP 2 NN 1 我的代码是 BasicDBObject ob
  • 登录管理后,Django 开发服务器停止

    我已经在 python 3 7 中安装了 django 3 0 并启动了一个基本的 django 项目 我创建了一个超级用户并使用运行开发服务器python manage py runserver 当我去localhost 8000 adm
  • 如何使用 R 将日期时间格式转换为“ddmmyyyy”?

    我的约会dataframe看起来像这样 Date Values 1JAN2018 80 23DEC2019 21 3 我怎样才能将其格式化为ddmmyyyy日期以便我可以使用ggplot创建时间序列图 我做了什么 Date lt as Da
  • 处理父小部件中的点击事件

    在我的应用程序树中 我有两个小部件 GestureDetector onTap gt print Outer child IconButton icon Icon Icons add onPressed gt print Inner 他们都
  • 将 OnClickListener 关闭然后再打开

    我在用户单击按钮后将 OnClickListener 设置为关闭 confirm setOnClickListener null 这使得该按钮不可单击 但我希望在用户单击另一个按钮后它可以单击 我怎样才能做到这一点 Just set con
  • 枚举所有正在运行的数据库

    我正在编写一个小型数据库管理程序 如果您提供数据库 它可以正常工作 但如果您不知道安装了哪个数据库 则效果不佳 如何枚举所有正在运行的数据库 例如程序的输出 Port xy MS SQL Server 2005 Port ab Postgr