问题描述
用于搜索网络的各种 Windows API(例如 WNetEnumResource
)速度缓慢且不可靠。
对于 IPv4,建议您可以遍历子网并发送 ARP
或 PING
请求以查找实时系统(没有防火墙阻止),然后从那里查询 Windows 特定资源。不得不这样做的一种糟糕的方式,但大多数 IPv4 子网相对较小,可行。然而,由于 IPv6 有如此多的设备可用,尝试 ARP
或 PING
一个范围似乎不合理。
我猜您也有 WINS
或 Active Directory
,其中可能有计算机,但在 AD 中它们可能不再存在并且仅包含已加入域的系统。
虽然我知道有人问过这个一般性的问题,但我还没有找到一个好的答案。这个问题是否已得到解决?今天(2021 年)是否有可靠的快速方法来获取网络上所有使用 C/C++ 的活动系统的列表,尤其是在 IPv6 不断增长的情况下?如果是,它是什么,是否有示例代码?
TIA!!
这是更改名称后请求的示例:
NETRESOURCE[0] Scope: all resources
NETRESOURCE[0] Type: any
NETRESOURCE[0] displayType: network
NETRESOURCE[0] Usage: 0x80000002 = container
NETRESOURCE[0] Localname: (null)
NETRESOURCE[0] Remotename: Microsoft Terminal Services
NETRESOURCE[0] Comment: (null)
NETRESOURCE[0] Provider: Microsoft Terminal Services
NETRESOURCE[1] Scope: all resources
NETRESOURCE[1] Type: any
NETRESOURCE[1] displayType: network
NETRESOURCE[1] Usage: 0x80000002 = container
NETRESOURCE[1] Localname: (null)
NETRESOURCE[1] Remotename: Microsoft Windows Network
NETRESOURCE[1] Comment: (null)
NETRESOURCE[1] Provider: Microsoft Windows Network
NETRESOURCE[0] Scope: all resources
NETRESOURCE[0] Type: any
NETRESOURCE[0] displayType: domain
NETRESOURCE[0] Usage: 0x2 = container
NETRESOURCE[0] Localname: (null)
NETRESOURCE[0] Remotename: DOMAINXX
NETRESOURCE[0] Comment: (null)
NETRESOURCE[0] Provider: Microsoft Windows Network
NETRESOURCE[0] Scope: all resources
NETRESOURCE[0] Type: any
NETRESOURCE[0] displayType: server
NETRESOURCE[0] Usage: 0x2 = container
NETRESOURCE[0] Localname: (null)
NETRESOURCE[0] Remotename: \\XXX03
NETRESOURCE[0] Comment:
NETRESOURCE[0] Provider: Microsoft Windows Network
NETRESOURCE[0] Scope: all resources
NETRESOURCE[0] Type: disk
NETRESOURCE[0] displayType: share
NETRESOURCE[0] Usage: 0x1 = connectable
NETRESOURCE[0] Localname: (null)
NETRESOURCE[0] Remotename: \\XXX03\vmshare
NETRESOURCE[0] Comment: VM Share for VirtualBox running VirtualPC machines.
NETRESOURCE[0] Provider: Microsoft Windows Network
NETRESOURCE[2] Scope: all resources
NETRESOURCE[2] Type: any
NETRESOURCE[2] displayType: network
NETRESOURCE[2] Usage: 0x80000002 = container
NETRESOURCE[2] Localname: (null)
NETRESOURCE[2] Remotename: Web Client Network
NETRESOURCE[2] Comment: (null)
NETRESOURCE[2] Provider: Web Client Network
WnetopenEnum Failed with error 1222
EnumerateFunc returned FALSE
注意还有其他几个服务器。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)