trouver toutes les adresses ip dans un réseau
Je suis en train de le faire en C#. J'ai besoin de trouver toutes les adresses ip qui sont actives dans mon réseau et de les afficher dans une liste. Je peux faire un ping toutes disponibles (1...255) adresse ip dans un réseau. Mais je veux rendre ce processus plus rapide.
Si vous voulez le rendre plus rapide, ping toutes les adresses ip dans le même temps:
J'ai juste couru une commande de requête ping à l'instar de ce
combien d'adresses IP sont possibles dans le réseau et ce qui est "assez vite"
J'ai fourni un copier-coller de code prêt à l'emploi dans ma réponse. voir si cela fonctionne pour vous.
Obtenez votre masque de réseau et d'effectuer une diffusion de ping, par exemple
Ping.SendAsync
.J'ai juste couru une commande de requête ping à l'instar de ce
for /l %n in (1,1,255) do ping 192.168.10.%x
avec le processus.démarrer (), puis ensuite lecture de la table arp trouver chaque adresse ip dans le réseau. mais cela est très lente. Besoin de faire vite.combien d'adresses IP sont possibles dans le réseau et ce qui est "assez vite"
J'ai fourni un copier-coller de code prêt à l'emploi dans ma réponse. voir si cela fonctionne pour vous.
Obtenez votre masque de réseau et d'effectuer une diffusion de ping, par exemple
ping 192.168.0.255
. Cependant, rappelez-vous que les pare-feu peut décider d'ignorer la diffusion de ping, ou de l'ignorer aucun sorte de ping période.
OriginalL'auteur Mehbube Arman | 2012-11-21
Vous devez vous connecter pour publier un commentaire.
Ce code scanne mon réseau 255 D-segments de la classe en 1 seconde environ. Je l'ai écrit dans VB.net et traduite en C# (toutes mes excuses si il y a des erreurs). De le coller dans un projet de type Console et exécuter. Modifiez-le si nécessaire.
Remarque: Le code est pas prêt pour la production et le besoin d'amélioration, en particulier sur l'exemple de comptage (essayez de mettre en œuvre un
TaskFactory
avec unBlockingCollection
à la place).Modifier le ttl (time-to-live) et le délai d'expiration si le résultat instable-sage.
L'exécution du code donne un résultat comme ceci:
De code C#:
Et VB.net code:
OriginalL'auteur
Veuillez vous référer à Ce lien Asynchrone sur un Socket Client pour savoir comment faire un ping plus rapide.
Edit: Un rapide extrait sur la façon d'accomplir ceci:
Prises de cette documentation de Microsoft.
pourquoi cherchez-vous une alternative? (Même alors, vous n'avez jamais déclaré que dans votre question) - Ping vous permettra de voir si une IP est en place ou pas..
Si il n'y a pas de point de référence central comme un serveur de domaine/serveur dns qui héberge le registre, vous allez avoir à la portée de tous les candidats adresses et voir si il n'y a rien là-bas, ping est la façon de le faire.
OriginalL'auteur TheGeekZn
OriginalL'auteur CloudyMarble
si vous voulez aller de l'ARP route, vous pouvez tout simplement envoyer les requêtes ARP pour toutes les adresses, attendez un peu, et regarder dans la table ARP de votre hôte
cela peut aider
http://www.codeguru.com/cpp/i-n/internet/internetprotocolip/article.php/c6153/How-to-Get-an-ARP-Table-with-an-IP-Helper-API.htm
cela semble être ce qu'il veut faire, et cela devrait être rapide.
sa question n'est pas claire et cette solution offre un peu plus que le ping
OriginalL'auteur Dr. Wummi
http://www.advanced-ip-scanner.com/. cet un outil que vous pouvez utiliser pour voir ce que les ip sont actifs sur votre réseau. aussi ce type de matériel de réseau que le PC utilise.
OriginalL'auteur Louis