gpt4 book ai didi

windows - 获取 "netsh dhcp server ..."命令的输出

转载 作者:可可西里 更新时间:2023-11-01 10:46:54 26 4
gpt4 key购买 nike

这听起来可能很简单,但几周来我一直在摸不着头脑。我有一个 C++ 程序需要获取以下 Windows 命令行命令的输出:

netsh dhcp server 192.168.200.15 scope 192.168.200.0 show clients 1

继续尝试,将 192.168.200.15 替换为您的 DHCP 服务器(在我的例子中它是 Windows 2003 服务器——我猜您的 DHCP 服务器必须是 Windows 才能使用此命令)并将 192.168.200.0 替换为你所在的子网。它会生成一个很好的 MAC 地址、IP 地址、主机名等列表。现在我需要获取该输出!

  1. 在 C++ 中使用 _popen 和 _pclose 的标准输入/输出不起作用。输出为空白
  2. Ruby 不工作...ruby -e "puts ``netsh dhcp..."` 什么也没给我
  3. Python 不工作... import subprocess, subprocess.call('netsh dhcp...') 什么也没给我
  4. 批处理文件中附加有“> SomeFile.txt”的命令在我从命令行运行时有效,但如果这些方法中的任何一个调用批处理文件来运行,即使使用“/start”开关也是如此。如果我手动执行批处理文件,输出文本文件中会填充我的好数据,但如果程序调用它则不会。太令人沮丧了。

我很确定我已经尝试了更多方法,这些只是我能记住的工具。我的系统是 Windows 7 Professional 64 位。可能无关紧要,因为有关“netsh dhcp server ...”命令的某些内容会使输出转到...某处?我查看了 STDOUT 和 STDERR。其他 netsh 命令没问题,例如“netsh show helper”,但与 DHCP 服务器的通信使该文本无法获取。

我什至竭尽全力运行 Wireshark 捕获,看看我是否可以通过嗅探来获取我想要的数据。
All packets showed up right after executing the command This is the second page... You can see it goes into RPC stuff

所以它从 LDAP 的东西开始,然后是 RPC 的东西,所有这些我似乎都无法提取我需要的信息,我也无法理解 RPC 协议(protocol)。但我想要的只是一个命令的输出!我觉得我不应该费那么大劲!

如果有人对如何获取这个怪异命令的输出有任何想法,即使只是一个文件,我也洗耳恭听。我可以使用编程轻松获取文件的输出。

最佳答案

DHCP 服务器 API 在 PowerShell 中全面公开- 这意味着有许多可用的 .Net 类,您可以将它们包装到 COM 或 native DLL 函数中,您可以从 C++ 应用程序调用这些函数,前提是您准备好将 .NET 运行时加载到进程中。

当然,您可以反编译包装器以查看它们如何获取数据并遵循复制相同的 native 路径以绕过 CLR 堆栈。

关于windows - 获取 "netsh dhcp server ..."命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20574562/

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