C# NetServerEnum从何处获取其计算机列表?

C# NetServerEnum从何处获取其计算机列表?,c#,networking,netapi32,C#,Networking,Netapi32,NetServerEnum()从何处获取其计算机列表 它是否使用计算机浏览器服务,或者如果有广告,它是否将广告作为首选项 链接: 从浏览器服务。NetServerEnum早于Active Directory,必须在非AD系统上运行。如果找不到浏览服务器,NetServerEnum将返回6118(无浏览器)。我认为AD有ADSI接口来完成这类任务,但我从未针对AD编程 请注意,NetServerEnum在大型域上的速度可能会非常慢:我通过尝试将NSE用于一个基本的“发现”算法而发现了这一点

NetServerEnum()
从何处获取其计算机列表

它是否使用计算机浏览器服务,或者如果有广告,它是否将广告作为首选项

链接:


从浏览器服务。NetServerEnum早于Active Directory,必须在非AD系统上运行。如果找不到浏览服务器,NetServerEnum将返回6118(无浏览器)。我认为AD有ADSI接口来完成这类任务,但我从未针对AD编程


请注意,NetServerEnum在大型域上的速度可能会非常慢:我通过尝试将NSE用于一个基本的“发现”算法而发现了这一点。很快就学到了我的经验,并切换到UDP来执行该任务。

您可以做的一件事是运行WireShark之类的程序,看看是否可以确定在调用NetServerEnum时启动的是哪种流量。我怀疑这只是与AD相反,在这种情况下,您可能会看到LDAP查询。当你说你使用了UDP协议时,你到底是如何使用这个协议的?非常感谢您的帮助。启动时,使用sendto和Inadr_广播来广播(小)UDP数据包。在ping消息中,输入发起者的数据,如IP地址。由于UDP不可靠,请(缓慢)执行多次。如果rxr当前没有与发起者的TCP连接,则当它收到ping时,它会尝试通过TCP重新连接。注意:不能跨路由器工作:在这种情况下,您需要维护自己的IP连接列表。无法发布代码,它属于我的雇主。注意:在IPv6下没有对等的协议,您需要多播。