1

我想开发一个适用于任何操作系统的网络库存应用程序。报告网络上所有可能的资源。报告硬件和软件的所有相关细节。那就是(我讨厌使用这个短语)我的“结束游戏”。

但是,在我可以爬到这里之前,我正在跑步。我没有这种类型的开发经验,例如发现计算机硬件和软件设置。

我花了将近两周的时间在谷歌上搜索,结果很短!:-(。

所以我转向你问这些问题:-

我的第一步是找到一个现有的开源项目,我可以将其合并到我自己的代码中,以提取我所追求的细粒度细节,例如关于单台机器上的硬件和软件的所有信息。

这个项目存在吗?还是我必须先开发它?

我必须用C写所有这些吗?

我猜想获得有关计算机的这些信息将比打印机、扫描仪、路由器等更容易……例如,您会发现连接到网络的所有其他信息。

一旦我可以访问单台计算机的详细信息,我就需要研究如何遍历打印机、扫描仪、路由器、负载平衡器、交换机、防火墙、工作站、服务器、存储设备、笔记本电脑、监视器的整个 newtork,不胜枚举和上

我遇到的一个问题是我没有 1000 台机器 newtork 可以玩!互联网上有这样的资源吗?(这是一个愚蠢的问题吗?)

任何人,如果你不问你就不会发现!

一方面我真的很期待找到如何遍历整个网络,

我应该为此使用 TCP/IP 吗?

什么是 TCP/IP 开发的好站点、博客、用户群、书籍?

我该如何通过防火墙?

我可以一口气问多少个问题?:-)

我之前关于这个主题的问题最终以 PYTHON 作为开发这个应用程序的语言/脚本而告终。

在查看了一些 PYTHON 示例后,它们似乎都与 WINDOWS 网络和询问 Windows Management Instrumentation (WMI) 有关。我有一种感觉,你不能依赖 WMI 中的内容,即使你可以依赖,这对 UNIX 网络也没有好处。

肯定存在从计算机中提取硬件和软件详细信息的通用代码吗?为什么我在网上找不到?

豌豆帮忙?

虽然没有奖品:-(

提前致谢

如果我违反了论坛规则或在寻求帮助之前没有足够努力地尝试,我想道歉。

我只是想以此作为我参与过的最好的项目之一开始推进。

我受到所涉及的许多不同数量的挑战的启发,并且如果我设法在它结束时生成一个有用的应用程序,它希望对许多人非常有帮助。

而已

提前致谢

DD

4

2 回答 2

3

作为发现解决方案的软件供应商,我只能说:尊重,你想开始一个新的:-)。以防万一您对它的外观感兴趣:http: //www.jdisc.com

现在谈谈我们的一些经验:

  1. 编程语言:我不会用 C 语言编写。使用 Java 或 .NET。在跟踪错误或问题时,这些语言具有很大的优势。例如,在 Java 中(我猜也在 .NET 中),您可以在出现故障时看到堆栈跟踪。对于某些代码(例如 WMI 访问),您可能需要使用 C++ 或 C(例如访问 Microsoft 的本地 API)。使用 Java 的本机接口或 COM 桥接器。在 .NET 中,访问 Windows API 应该更容易)。

  2. 设备:嗯,网络打印机、路由器和交换机实际上更容易被发现。他们通常通过 SNMP 公开他们的信息。SNMP 非常易于使用且非常强大。从 Windows(甚至 Unix)系统获取信息有点棘手。协议可能会被阻止、配置错误、搞砸……我们遇到过一些案例,当从远程设备请求数据时,WMI 只是挂起。

  3. 测试设备:由于我们也是一家较小的公司,我们也没有 1000 种不同的设备可供测试。但是,有些事情可能会有所帮助:

a) 对于 SNMP 设备,使用 SNMP 模拟器。我们使用 Gambit Solutions 的 MIMIC 9.0,我们对此非常满意。您可以从网络设备导入 SNMP walks 并模拟设备,就好像它在您的网络中一样。b) 其次,尽可能使用虚拟化。使用 VMware,您可以安装 Windows、Linux 甚至 Solaris。我们还使用一个名为 GNS3 的项目来模拟 Cisco 路由器、防火墙或瞻博网络路由器。c) 如果您有帮助您测试和实施新设备的客户,您只能测试其余设备。

这只是一些开始的想法。但我必须告诉你,这不是微不足道的,而且需要很多时间......

希望你有一些想法开始......

于 2010-07-07T18:09:50.587 回答
0

我不知道它是开源的,但我们在这里使用 Spiceworks ( http://www.spiceworks.com ) 作为 IT 管理平台。你可能会从探索中得到一些用处。

于 2010-07-07T18:17:43.150 回答