C# 如何使用IP地址查找网络上的系统中是否安装了SQL Server?
如何检查网络上的系统中是否安装了SQL Server 我必须用IP地址找到它。这可能吗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
如何在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暴露给外部世界的原因—因此它经常被移动。