【问题标题】:Check on avaiable port using wmi win32 class?使用 wmi win32 类检查可用端口?
【发布时间】:2012-11-08 18:21:53
【问题描述】:

我正在使用 inno setup 来制作安装文件。它需要提取本地 IP 地址(我可以通过查询 Win32_NetworkAdapterConfiguration 来完成)并检查是否打开了特定端口以供软件运行(我目前正在寻找答案)。

我意识到 WMI Win32 类包含很多有用的信息。所以我想知道如果可以的话,我应该使用哪个 Win32 类来检查这个端口?

谢谢你,

【问题讨论】:

    标签: winapi networking wmi inno-setup wmi-query


    【解决方案1】:

    AFAIK 检查给定端口是否打开的唯一 WMI 类是 NetDiagnostics WMI 类和 ConnectToPort 方法,但该类仅存在于 Windows XP 中。因此,如果您想要一个适用于其他 Windows 版本的选项,您可以尝试导入(或编写您自己的应用程序并从 inno 调用)类似 Winsock connect 函数的东西,就像在这个问题上显示的那样 How to check if a TCP port is available with Delphi?

    【讨论】:

      【解决方案2】:

      只需尝试将套接字绑定到它。如果成功,则可用。

      【讨论】:

      • 你能举例说明如何进行这种连接吗?
      • @Lizz 你真的需要一个 bind() 的例子吗?
      • 这不是linux,是windows,所以只有聪明的人才知道怎么做bind off the cuff。你能帮忙吗?
      • @lizz 所需的代码在 Linux 和 Windows 上是相同的,除了 Winsock 引入的差异。不需要额外的聪明才智。
      猜你喜欢
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 2017-03-13
      • 2014-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多