如何解决快速可靠地搜索所有系统 IPv4 和 IPv6 的 Windows 网络?
用于搜索网络的各种 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 举报,一经查实,本站将立刻删除。