c# - 如何在局域网中的所有主机上查找正在运行的程序的所有实例?

标签 c# .net

出于实际目的,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/

相关文章:

c# - ASP.Net & EF Core 2 和并发 token 错误

c# - 使用选项卡在 Windows 窗体应用程序上保持代码整洁

c# - 在 html 属性中输入不同颜色的文本

c# - 面试题: Exception within Event Handler

c# - 使用 Windows 身份验证从 C# 应用程序调用 ASMX 服务?

c# - 通过连接c#和mysql如何删除数据库再次创建它并连接?

c# - 如何从 Azure 应用程序配置获取 .crt 和 .key 文件

.net - servicestack 自托管服务使用分块编码 - 是无缓冲的吗?

c# - 如何在 C# 中追加 xml 文件?

c# - 循环遍历 Silverlight DataGrid 中的行