快速可靠地搜索所有系统 IPv4 和 IPv6 的 Windows 网络?

问题描述

用于搜索网络的各种 Windows API(例如 WNetEnumResource)速度缓慢且不可靠。

对于 IPv4,建议您可以遍历子网并发送 ARPPING 请求以查找实时系统(没有防火墙阻止),然后从那里查询 Windows 特定资源。不得不这样做的一种糟糕的方式,但大多数 IPv4 子网相对较小,可行。然而,由于 IPv6 有如此多的设备可用,尝试 ARPPING 一个范围似乎不合理。

我猜您也有 WINSActive 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

浏览图片和在快速访问栏上实际输入\服务器的图片之一

Network Browse

UNC Entered

注意还有其他几个服务器。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)