我想开发适用于任何操作系统的网络清单应用程序。 报告每个可能的资源到达网络。 报告硬件和软件的所有相关细节。 多数民众赞成(我讨厌使用这句话)我的“结束游戏”。
但是我跑之前我可以爬到这里。 我没有这种类型的开发经验,例如发现计算机硬件和软件设置。
我花了差不多两个星期的谷歌搜索并做空了! : - (
所以我转而问你这些问题: -
我的第一步是找到一个现有的开源项目,我可以将其合并到我自己的代码中,以提取我所追求的细粒度细节,例如:一切都需要了解一台机器上的硬件和软件。
这个项目是否存在?还是我必须先开发?
我是否必须在C中写下这一切?
我猜测得到有关计算机的信息比打印机,扫描仪,路由器等更容易...例如你会发现附加在网络上的其他一切。
一旦我可以访问单个计算机的详细信息,我就需要研究如何遍历打印机,扫描仪,路由器,负载平衡器,交换机,防火墙,工作站,服务器,存储设备,笔记本电脑,显示器,列表一直在继续
我遇到的一个问题是我没有1000台机器可以玩! 互联网上是否有这样的资源? (这是一个愚蠢的问题吗?)
Anywho,如果你不问你不会发现!
我非常期待找到如何遍历整个网络的一个方面,
我应该使用TCP / IP吗?
什么是一个好网站,博客,usergorup,TCP / IP开发书?
我如何通过防火墙?
我可以一次提出多少问题? : - )
我之前关于这个主题的问题最终得到了PYTHON作为开发此应用程序的语言/脚本的支持。
看了几个PYTHON示例,它们似乎都与WINDOWS网络有关 并询问Windows Management Instrumentation(WMI)。我觉得你不能依赖于WMI中的什么,即使你对UNIX网络没什么好处。
当然存在从计算机中提取硬件和软件细节的通用代码?为什么我不能在互联网上找到它?
Pease帮助?
Theres没有奖品: - (
提前致谢
如果我已经破坏了论坛规则或者在我寻求帮助之前没有自己努力尝试,我想表示道歉。
我只是想继续推进这项工作,这是我参与过的最好的项目之一。
我受到了许多不同挑战的启发,如果我能够在最后制作一个有用的应用程序,那么对许多人来说这将是非常有帮助的。
那就是
提前致谢
DD
答案 0 :(得分:3)
作为发现解决方案的软件供应商,我可以说:尊重,你想要开始一个新的:-)。以防您对它的外观感兴趣:http://www.jdisc.com
现在我们的一些经验:
编程语言: 我不会用C语言编写它。使用Java或.NET。在追踪错误或问题时,这些语言具有很大的优势。例如,在Java中(我猜也在.NET中),您可以在出现故障时看到堆栈跟踪。对于某些代码段(例如WMI访问),您可能需要使用C ++或C(例如,从Microsoft访问本机API)。使用Java的本机接口或COM桥接器。在.NET中,访问Windows API应该更容易。)
设备: 好吧,网络打印机,路由器和交换机实际上更容易发现。他们通常通过SNMP公开他们的信息。 SNMP非常易于使用且非常强大。从Windows(甚至Unix)系统获取信息有点棘手。协议可以被阻止,配置错误,混乱...我们遇到过WMI在从远程设备请求数据时只是挂起的情况。
测试设备: 由于我们也是一家规模较小的公司,我们也没有1000种不同的设备可供测试。但是,有些事情可能有所帮助:
a)对于SNMP设备,请使用SNMP模拟器。我们使用Gambit Solutions的MIMIC 9.0,我们对它非常满意。您可以从网络设备导入SNMP漫游,并像在网络中一样模拟设备。 b)其次,尽可能使用虚拟化。使用VMware,您可以安装Windows,Linux甚至Solaris。我们还使用名为GNS3的项目来模拟Cisco路由器,防火墙或Juniper路由器。 c)如果您的客户可以帮助您测试和实施新设备,则只能测试其余设备。
这只是一些想法。但我必须告诉你,这不是微不足道的,需要花费很多时间......
希望你有一些想法开始......
答案 1 :(得分:0)
我不知道它是开源的,但我们在这里使用Spiceworks(http://www.spiceworks.com)作为IT管理平台。你可以通过探索它来获得一些用处。