出于实际目的,SqlDataSourceEnumerator 所做的是查找在 LAN 上的各种 PC 上运行的 SQL 服务器的所有实例。
是否有用于查找任意应用程序的运行实例的等价物?
编辑:好的,所以这只有效,因为这些应用程序具有预定义的合作方法。是否有一种直接的方法来确定给定文件(例如 exe)是否存在于 LAN 上的某台计算机上,即使应用程序本身当时没有运行?了解必须考虑权限。
最佳答案
它在整个 lan 网段(子网掩码)上广播一个 UDP 数据包(端口 1434)是什么 SQL 枚举。在各种主机上运行的 SQL 浏览器代理服务监听此数据包并使用本地实例列表进行响应。因此,为了进行枚举,许多鸭子已经为您对齐:
- 有一个众所周知的 SQL 实例发现协议(protocol),即 UDP 1434 广播和响应
- 有一个监听这个广播的服务,由 SQL Server 安装程序安装
- 有一个客户端库来实现您利用的广播请求格式化和响应解析
要使任意应用程序的行为相同,该应用程序必须实现这些缺失的部分。发现在子网段中任意主机上运行的任意进程基本上是不可能的。
关于c# - 如何在局域网中的所有主机上查找正在运行的程序的所有实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3190056/