Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用IP地址查找网络上的系统中是否安装了SQL Server?_C#_Sql_Sql Server_C# 4.0 - Fatal编程技术网

C# 如何使用IP地址查找网络上的系统中是否安装了SQL Server?

C# 如何使用IP地址查找网络上的系统中是否安装了SQL Server?,c#,sql,sql-server,c#-4.0,C#,Sql,Sql Server,C# 4.0,如何检查网络上的系统中是否安装了SQL Server 我必须用IP地址找到它。这可能吗 如何在c代码中实现它?一般来说,SQL Server侦听端口1433: 因此,如果您发现此端口已打开,则很有可能(但不确定)SQL Server已安装在该计算机上并且可以访问 您可以通过打开该端口的套接字来检查该端口是否已打开:有关详细信息,请参阅套接字类(doc:) 但是,也可以在无法通过此端口访问的许多其他模式下安装SQL Server。也可以从其他程序打开(和响应)此端口 值得注意的是,保护可通过In

如何检查网络上的系统中是否安装了SQL Server

我必须用IP地址找到它。这可能吗


如何在c代码中实现它?

一般来说,SQL Server侦听端口1433:

因此,如果您发现此端口已打开,则很有可能(但不确定)SQL Server已安装在该计算机上并且可以访问

您可以通过打开该端口的套接字来检查该端口是否已打开:有关详细信息,请参阅套接字类(doc:)

但是,也可以在无法通过此端口访问的许多其他模式下安装SQL Server。也可以从其他程序打开(和响应)此端口


值得注意的是,保护可通过Internet访问的服务器的最佳做法是将SQL server设置在非标准端口上,不访问WMI,并且(理想情况下)服务器锁定为仅向已知白名单客户机的TCP/IP地址打开其端口。因此,一般来说:没有办法做这种扫描,将始终工作。(如果您仔细考虑一下,也可以…

您可以尝试使用WMI

以下是如何检测SQL Server是否使用WMI安装:(适用于2005年,应易于适应其他版本)

要使用WMI连接到远程计算机,请阅读


当然,必须安装、访问WMI等。

您有权在服务器上运行WMI代码吗?是否拥有读取注册表的远程权限?此端口可能永远不会被使用:我知道使用命名实例的商店从不使用1433。此外,1434可能被阻塞,必须提前知道端口。或者可以停止SQL Server。通常,您需要读取注册表或使用WMI来找出不应该在端口1433上将SQL Server暴露给外部世界的原因—因此它经常被移动。