【问题标题】:how to read list of running processes on a remote computer in C++如何在 C++ 中读取远程计算机上正在运行的进程列表
【发布时间】:2010-02-06 04:05:12
【问题描述】:

如何知道并列出远程计算机上所有正在运行的进程?
一种想法是让服务器在远程机器上监听我们的请求,另一种想法是使用 ssh。
问题是我不知道远程机器上是否会有这样的服务器运行,我不能使用 ssh 因为它需要身份验证。
还有其他出路吗?

【问题讨论】:

  • 你在什么平台上运行?
  • 你必须在远程服务器上运行一些东西,不管它是由你自己执行的还是作为操作系统的服务执行的。
  • ssh 有几个选项用于保存/指定身份验证,这样您就不必以交互方式询问用户,如果这就是您认为不能使用 ssh 的原因。
  • 是的,我知道,但问题是我无法以任何方式配置 ssh 以在未经身份验证的情况下登录。我刚刚获得了一个 IP 地址,并且必须列出在该 IP 地址上运行的所有进程。
  • 可以在这里以任何方式使用 RPC 吗?

标签: c++ c linux remote-access


【解决方案1】:

如果你

  • 无法在远程机器上安装服务器程序
  • 不能使用任何需要身份验证的东西

那么你不应该被允许知道机器上所有正在运行的进程的列表。该请求将是一场安全噩梦!

您可以做一些更简单的事情,而不会出现(尽可能多的)安全问题:扫描公开可用的端口以查找正在运行的程序。 nmap.org 之类的程序可以让您了解有关机器上公开运行程序的大量信息。

【讨论】:

    【解决方案2】:

    我过去使用 SNMP 做过类似的事情。我面前没有具体细节,但是像“snmpwalk -v2 -c public hostname prTable”这样的东西让我得到了进程表。我记得后来配置 SNMP 以在进程数不满足我们指定的要求时生成错误,例如 httpd 必须至少有 1 且小于 50。

    【讨论】:

      【解决方案3】:

      我建议您查看远程登录代码rlogin。您可以远程登录到具有所需权限的帐户。登录后,您可以获取进程列表。

      这看起来像是一个很好的脚本应用程序,而不是 C 或 C++ 程序。

      【讨论】:

      • 提问者已经说过不能使用认证了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多