Scanner réseau local

Soyez le premier à donner votre avis sur cette source.

Vue 16 447 fois - Téléchargée 2 991 fois

Description

Scanne le réseau locale afin d'y détecter les machines présentes.
Permet de récupérer Adresse IP, Adresse MAC, Nom NetBIOS et liste des dossiers partagés(MàJ).

Le fonctionnement est simple :
Sur la plage d'adresses choisies, on "ping" toutes les adresses.
Si il y a une réponse au ping, alors on récupère Adresse MAC, Nom NetBIOS et liste des dossiers partagés.

Afin de raccourcir la durée des ping, cette phase est exécutée via un ThreadPool.

Dans la classe CPoste, il y a une implémentation du Wake-On-Lan qui permet d'allumer un poste à distance.
Restrictions du Wake-On-Lan :
- Le poste cible doit être connecté en Ethernet
- Il doit appartenir au même réseau que le poste qui l'exécute
- Le Bios du poste cible doit être configuré pour accepter cette méthode

Dans la source, il y a aussi des contrôles personnalisés Adresse IP et Adresse MAC.

Je me suis inspiré de nombreuses sources disponibles sur Internet dont codes-sources.com

Je sais que des sources équivalentes ont été postées auparavant mais j'ai tellement appris en réalisant ce petit projet et parfois l'info que je cherchais n'étais vraiment pas évidente à trouver donc je tenais à partager tout ça.

C'est ma première source sur ce site.

Toutes les critiques (constructives) sont les bienvenues!

Le tout a été développé avec SharpDevelop

Conclusion :


Suites possibles :

- Récupérer la liste des dossiers partagés d'un poste distant (ajouté le 04/03/2011)
- Exporter les résultats sous différentes formes (xml, csv, ...)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
28
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
5 mai 2014

Salut,

Bravo pour ce petit prog.

Etant moi-même en train d'en faire un semblable, j'ai pu m'aider du tien pour y parvenir.

Il faut juste ajouter le tbLog qui est un textbox pour compiler.
Messages postés
2
Date d'inscription
vendredi 29 avril 2011
Statut
Membre
Dernière intervention
10 mai 2011

Une simple TextBox j'aurai du m'en douter avant de poster :)
Messages postés
2
Date d'inscription
vendredi 29 avril 2011
Statut
Membre
Dernière intervention
10 mai 2011

Je viens de tester ton code car je suis entrain de faire quelque chose de similaire et j'avais quelques problemes et j'ai pu me debloquer grace a certaines de tes fonctions(surtout l'ARP que j'utilisais differement)
Par contre je n'arrive pas a lancer l'appli je n'ai pu que explorer le code car ton tbLog est inexistant et je ne sais pas a quoi cela correspond, pourrais tu m'eclairer ?
Bon boulot sinon =)
Messages postés
5
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
7 mars 2009

Bonjour,
J'ai sur ma machine 2 cartes réseau avec chacune une adresse IP.
Ta fonction GetIpLocale ci-dessous ne permet de retrouver que la dernière de ces IP dans h.AddressList.
Tu devrais, s'il y a plus d'une adresse, les mettre dans une combobox (ou autre) pour permettre le choix du réseau à tester.

public static String GetIpLocale()
{
IPHostEntry h = Dns.GetHostEntry(Dns.GetHostName());

String ip_adr = String.Empty;

foreach (IPAddress ip in h.AddressList)
{
if (ip.ToString().Contains("."))
{
ip_adr = ip.ToString();
}
}

return ip_adr;
}

Sinon tu a laissé quelques variables de debug mais merci pour cette "étude" bien intéressante.
Messages postés
146
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
21 juillet 2013
3
Ca à l'air bien.
Je vais tester prochainement.
En attendant bonne continuation.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.