如何检查网络中的系统中是否安装了SQL Server?
我必须使用IP地址找到它。这可能吗?
如何在c#代码中实现它?
答案 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,访问等等。