2014-07-24 1 views
0

Scénario: Développement d'une application ciblant un périphérique alimenté par Win CE 5.0. L'application est en cours de développement en utilisant .NET Compact Framework 3.5 (C#).C# Meilleure approche pour trouver toutes les adresses IP actives dans un réseau local

Question: Tout comme lorsque vous vous connectez un ordinateur à un réseau local et vous pouvez voir tous les autres ordinateurs actifs et leur adresse IP respective, nous voudrions mettre en œuvre quelque chose de semblable dans notre application où seules les adresses IP être listé. Considérant qu'il s'agit d'une fonctionnalité Windows existante, j'ai supposé qu'il serait possible de mettre en œuvre facilement dans l'application. Quelle est la meilleure approche compte tenu de mon scénario?

+0

Si présent, j'irais avec ActiveDirectory et l'analyse IP pour toute autre chose. –

+1

juste pour que vous sachiez, la plupart du type de fonctionnalité net view est basé sur NetBIOS, qui est horriblement floconneux. Tout sous-réseau en l'absence de routage peut très bien vous empêcher de voir les adresses IP sur le réseau. – zaitsman

Répondre

0

vous pouvez écrire une fonction qui ping sur environ 20 ou plus IPAdresses allant de 192.168.1.1 à 192.168.1.20 et l'appeler dans différentes discussions avec defferent ofssets exmple: un allant de 192.168.1.1 autre allant de 192.168 .1.21 ....... les appeler sur les discussions defferent mais ne les appeler beaucoup cela ralentirait la CPU et peut-être freez l'ordinateur

3

d'abord, vous devez définir ce que vous entendez par actif Adresses IP.

Un hôte peut blocICMP_ECHO (communément reffered comme ping) mais permettent TCP, UDP connexions etc. sur les ports spécifiques.

En fonction de ce type de service dont vous avez besoin de vos hôtes, vous pouvez

  • envoyer ICMP_ECHO demande à toutes les adresses IP dans votre sous-réseau.

    - Pour calculer la plage IP de votre subnet vous pouvez utiliser le address space bitmask

    - Pour demander ICMP, vous pouvez aussi utiliser une adresse broadcast. Mais la plupart des hôtes ne répondent pas pour diffuser des requêtes afin de prévenir les inondations.

  • tentative d'ouvrir des connexions sur les ports TCP spécifiques (encore une fois sur toute la gamme ip)

  • demander votre routeur pour vous fournir une liste d'hôtes en utilisant via dns query

  • envoyer arp requests à un Ethernet large adresse cast

Essentiellement, il y a trop de façons d'obtenir une liste d'hôtes dans une plage d'adresses IP spécifique ou sous-réseau pour donner une réponse générale.

Vous devez d'abord définir ce dont vous avez besoin pour cette liste d'hôtes.

Questions connexes