Инвентаризация оборудования / программного обеспечения с открытым исходным кодом - PullRequest
1 голос
/ 27 марта 2010

Я хотел бы разработать приложение Network Inventory, которое работает в любой операционной системе. Отчеты о всех возможных ресурсах, подключенных к сети. Сообщает обо всех соответствующих деталях аппаратного и программного обеспечения. Это (и я ненавижу использовать фразу) моя "Конец игры".

Однако я бегу, прежде чем смогу ползти сюда. У меня нет опыта такого развития, например обнаружение аппаратных и программных настроек компьютера.

Я потратил почти две недели на поиски в интернете и потерпел неудачу! : -. (

Поэтому я обращаюсь к вам, чтобы задать следующие вопросы: -

Мой первый шаг - найти существующий проект с открытым исходным кодом, который я могу включить в свой собственный код, который извлекает мелкозернистые детали, которые мне нужны, например, ВСЕ, что нужно знать об аппаратном и программном обеспечении на одном компьютере.

Существует ли этот проект? или мне сначала нужно это развить?

Должен ли я написать все это на C?

Я предполагаю, что получить эту информацию о компьютере будет легче, чем о принтерах, сканерах, маршрутизаторах и т. Д., Например. все остальное, что вы найдете подключенным к сети.

Как только я получу доступ к сведениям об одном компьютере, мне потребуется выяснить, как я могу пройти через весь ньюторк принтеров, сканеров, маршрутизаторов, балансировщиков нагрузки, коммутаторов, брандмауэров, рабочих станций, серверов, устройств хранения, ноутбуков, мониторов список можно продолжать и дальше

Одна проблема, с которой я столкнулся, - у меня нет 1000 машин, на которых можно играть! Есть ли такой ресурс в интернете? (это глупый вопрос?)

В любом случае, если вы не спросите, вы не узнаете!

Один аспект, который я действительно с нетерпением жду, чтобы узнать, как обойти всю сеть,

я должен использовать TCP / IP для этого?

Какой хороший сайт, блог, usergorup, книга для разработки TCP / IP?

Как мне пройти через брандмауэры?

Сколько вопросов я могу задать за один раз? : -)

Мой предыдущий вопрос на эту тему закончился тем, что PYTHON был выбран как язык / сценарий для разработки этого приложения.

Посмотрев на несколько примеров PYTHON, они все, похоже, были связаны с сетями WINDOWS. и опрос инструментария управления Windows (WMI). У меня было чувство, что вы не можете полагаться на то, что в WMI, и даже если вы можете, это не годится для сетей UNIX.

Конечно, существует общий код для извлечения сведений об оборудовании и программном обеспечении из компьютера? Почему я не могу найти его в интернете?

Pease, помогите?

Нет призов: - (

Заранее спасибо

Я хотел бы извиниться, если я нарушил правила форума или недостаточно старался, прежде чем просить о помощи.

Я просто хотел бы начать продвигаться вперед с этим, так как это один из лучших проектов, в которых я принимал участие.

Меня вдохновляет множество разных проблем, и, если мне удастся создать полезное приложение в конце, оно, надеюсь, будет чрезвычайно полезным для многих людей.

Вот сижу

Заранее спасибо

DD

Ответы [ 2 ]

3 голосов
/ 07 июля 2010

как поставщик программного обеспечения для решения для обнаружения, я могу просто сказать: Уважайте, что вы хотите начать новое :-). На всякий случай, если вам интересно, как это может выглядеть: http://www.jdisc.com

Теперь к нашему опыту:

  1. Язык программирования: Я бы не стал писать это на C. Используйте Java или .NET. Эти языки имеют большие преимущества, когда дело доходит до отслеживания ошибок или проблем. Например, в Java (и, я полагаю, также в .NET) вы можете увидеть трассировку стека, когда что-то не работает. Для некоторых фрагментов кода (например, доступ к WMI) вам может потребоваться использовать C ++ или C (например, доступ к собственным API-интерфейсам от Microsoft). Используйте собственный интерфейс или COM-мост из Java. В .NET доступ к API Windows должен быть еще проще).

  2. Устройства: ну, сетевые принтеры, маршрутизаторы и коммутаторы на самом деле легче обнаружить. Они обычно предоставляют свою информацию через SNMP. SNMP довольно прост в использовании и надежен. Получение информации из систем Windows (или даже Unix) немного сложнее. Протоколы могут быть заблокированы, неправильно настроены, испорчены ... У нас были случаи, когда WMI просто зависал при запросе данных с удаленного устройства.

  3. Испытательные устройства: Поскольку мы также являемся небольшой компанией, у нас также нет 1000 различных устройств для тестирования. Но есть некоторые вещи, которые могут помочь:

a) Для устройств SNMP используйте симулятор SNMP. Мы используем MIMIC 9.0 от Gambit Solutions, и мы очень довольны этим. Вы можете импортировать SNMP-прогулки с сетевых устройств и смоделировать устройство, как если бы оно было в вашей сети. б) Во-вторых, по возможности используйте виртуализацию. С VMware вы можете установить Windows, Linux или даже Solaris. Мы также используем проект под названием GNS3 для эмуляции маршрутизаторов Cisco, межсетевых экранов или маршрутизаторов Juniper. c) Вы можете протестировать остальные устройства, только если у вас есть клиент, который поможет вам с тестированием и внедрением новых устройств.

Это всего лишь несколько идей для начала. Но я должен сказать вам, что это не тривиально и занимает много времени ....

Надеюсь, у вас есть идеи для начала ...

0 голосов
/ 07 июля 2010

Я не знаю, что это открытый исходный код, но мы используем Spiceworks (http://www.spiceworks.com) здесь в качестве платформы управления ИТ. Вы можете получить некоторую пользу от изучения этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...