gpt4 book ai didi

python - 如何使用 WMI/COM 连接到链路本地 IPv6?

转载 作者:太空宇宙 更新时间:2023-11-03 19:29:24 25 4
gpt4 key购买 nike

我正在尝试从主机 B 对主机 A 进行一些 v4 网络配置。因为在 v4 上使用 WMI 将是一个 catch-22,所以我想使用链接本地 v6 来建立连接。

显然,COM 至少从 2003 年起就支持 IPv6。链接本地似乎被遗忘了。

令人困惑的是:如果主机 A 有可用的 IPv4(是的,4),则这有效(在 Python 中):

>>> c = wmi.WMI('fe80::c0af:e3e1:8383:ddc7%17', user='Administrator', password='blabla')
>>>

但是,当我从 A 的接口(interface)中删除 v4 地址,或将其替换为主机 B 无法连接的地址时,上面的调用失败,报告“找不到指定的对象导出器”。有趣的是,主机 A 上的 netstat 确实显示了连接尝试。

其他信息:

  • Windows telnet.exe 接受 fe80 地址(带或不带 %17),并且可以正常连接到端口 135。
  • Python 的 socket.socket.connect 也有同样的作用。

有什么提示吗?

已解决:WMI 似乎执行了某种回调连接,并且在这种情况下无法应对链接本地 v6。升级至 MS 支持。

最佳答案

事实证明,无论 WMI 使用何种奇怪的回调机制来实现双向通信,都无法应对链路本地寻址。我正在升级至 Microsoft 支持。

更新:我已与 MS 支持讨论了该问题。事实证明,Windows 防火墙的默认设置会阻止链接本地名称解析,而 WMI 需要工作名称解析。

在您要连接的计算机上启用“网络发现 (LLMNR-UDP-In)”的允许规则,使一切正常工作。显然,问题不在于某些连接返回,而是 WMI 坚持连接到指定端点。或者其他什么。

关于python - 如何使用 WMI/COM 连接到链路本地 IPv6?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6693194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com