2010-01-20 8 views
1

Existe-t-il un protocole spécifique utilisé pour la découverte du réseau?
Je cherche à coder ceci dans un projet java existant. Actuellement, j'utilise un scanner de port pour gérer l'affaire, mais je cherche à échanger cela pour quelque chose qui peut me donner un peu plus d'informations. Si possible, je voudrais numériser pour découvrir la machine et tirer l'Ip addr, le nom d'hôte, MAC addr, NIC marque/modèle, OS, et tout ce que je peux obtenir.Découverte du réseau par programme

+2

La découverte du réseau de quoi? À quelles machines l'ordinateur hôte est-il connecté? D'autres machines exécutant un certain programme de serveur? Peux-tu être plus précis? –

+0

Avec une carte topologique? cela va s'avérer une tâche très intéressante ... – jldupont

Répondre

4

Il n'y a pas un seul protocole qui fera tout cela pour vous. J'ai dû faire exactement cela et, fondamentalement, la meilleure approche consiste à utiliser une combinaison d'heuristiques pour localiser, analyser et croiser les nœuds et la topologie du réseau. Voici les sources de données que j'ai utilisé:

  • traceroute vous permet d'identifier les appareils de pointe et des routeurs dans le réseau
  • Port-scanner vous permet d'identifier quels services sont en cours d'exécution sur chaque nœud
  • SNMP vous permet de détecter le type de périphérique, ainsi que toutes ses interfaces réseau, autres adresses IP, l'adresse IP des périphériques connectés à chaque port sur les commutateurs, la table de routage, la table de processus, la configuration réseau, etc. C'est la meilleure source de données, mais nécessite le n ode exécuter un serveur snmp (installé par défaut sur Windows et la plupart des distributions Linux) et avoir des informations d'identification.
  • WMI pour les fenêtres hôtes, fournira à peu près les mêmes informations que le protocole SNMP

Here est une ressource accademic je déterré tout en travaillant sur mon mappeur de topologie. J'espère que ça va aider. Bonne chance!

0

Consultez le protocole SNMP. Il a un moyen d'autodiscover les périphériques sur le réseau. Gardez à l'esprit qu'il existe des problèmes de sécurité avec cela (en particulier les versions plus anciennes du protocole).

+0

c'est certainement une pièce du puzzle. – jldupont

1

Vérifiez nmap pour ce qu'il peut. C'est scanner de réseau, peut scanner avec ARP, TCP-SYN, et beaucoup d'autres techniques de reniflement. Il contient également une grande base de données de différentes empreintes digitales de machines, ce qui lui permet de deviner quel système d'exploitation/version est exécuté. WBEM (similaire à WMI sous Windows) peut être utilisé pour numériser des ordinateurs Unix et d'autres périphériques.

+0

oui, je suis familier avec nmap. L'une des fonctionnalités que je cherche à obtenir plus d'informations à implémenter est de déterminer MAC addr de l'analyse. Des idées sur où commencer? – Nick

+0

@Nick Je pense que la façon la plus facile de déterminer MAC est de faire un scan ARP (Address Resolution Protocol) (vérifier l'utilitaire 'arping'), ou simplement essayer de pinger l'adresse et vérifier la table ARP de votre système. Gardez à l'esprit que vous ne pouvez obtenir que des adresses MAC d'hôtes dans votre réseau local (ou seulement 1 segment). – MBO

0

Bien sûr, seulement si l'instrumentation WBEM est installée ...

WBEM fonctionne même pour les serveurs ESX (i) s'il y est activé. Dans le cas contraire, vous pouvez également utiliser SSH pour vous connecter par programme aux ordinateurs Unix et émettre des commandes système pour extraire les informations dont vous avez besoin.

Il y a une belle bibliothèque Java pour WBEM appelé SBLIM Il y a beaucoup de bibliothèque Java pour Telnet et SSH là

Questions connexes