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

时间:2011-12-29 12:12:22

标签: c# sql sql-server c#-4.0

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

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

如何在c#代码中实现它?

2 个答案:

答案 0 :(得分:1)

通常,SQL Server侦听端口1433:

http://support.microsoft.com/kb/287932

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

您可以通过打开套接字来检查此端口是否已打开:有关详细信息,请参阅Socket类(doc:http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx)。

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

值得注意的是,保护可通过Internet访问的服务器的最佳做法是将SQL Server置于非标准端口,无法访问WMI,并且(理想情况下)服务器锁定为仅打开其端口已知白名单客户端的TCP / IP地址。所以一般情况下:没有办法进行始终工作的扫描。 (同样,如果你考虑一下......)

答案 1 :(得分:1)

您可以尝试使用WMI。

以下是如何检测是否使用WMI安装SQL Server:FAQ: Detecting SQL Server 2005 using WMI(适用于2005,应该很容易适应其他版本)。

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

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