Scanner réseau, ping impossible

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous !

Sa fait aujourd'hui quelques jours que je bloque sur un problème. Mon application à pour but de scanner les ip et nom d'host de mon sous réseau (école) et de me retourner toutes les machines dont le nom host contient le nom de ma classe dans l'école.

J'ai fait en sorte que l'application commence avec une ip de base style : 172.17.100.0 et devrais récupéré le host jusqu'à l'ip : 172.17.104.253.

Hors quand je débug mes deux boucles qui incrémente mes ip, fonctionnes, mais après il ne me retourne aucun host mise à part celui de ma machine à moi.

J'ai contrôlé sur une machine à côté de moi que je puisse bien la ping et qu'elle soit dans la bonne plage d'adresse, tout est bon.

Maintenant je suis totalement dépassé sur comment faire pour qu'il puisse me retourner les machines dans la plage d'adresse.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 private void Form1_Load(object sender, EventArgs e)
        {
            //Variable récupéré par l'intranet suivant l'horaire du professeur
                classe = cmb_Classe.Text;
                int lastF = ipStart.LastIndexOf(".");
                int lastT = ipStop.LastIndexOf(".");
                string frm = ipStart.Substring(lastF + 1);
                string tto = ipStop.Substring(lastT + 1);

                System.Diagnostics.Debug.WriteLine(frm + " " + tto);
                Console.WriteLine(frm);
            while (subnetStart <= subnetStop)
            {
                ipStart = "172.17." + Convert.ToString(subnetStart) + ".0";

                for (int i = int.Parse(frm); i < int.Parse(tto); i++)
                {
                    try
                    {
                        string IpAddress = ipStart.Substring(0, lastF + 1) + i;
                        System.Diagnostics.Debug.WriteLine(ipStart.Substring(0, lastT + 1) + i);
                        var DnsWorker = new BackgroundWorker();
                        DnsWorker.DoWork += DnsWorker_DoWork;
                        DnsWorker.RunWorkerCompleted += DnsWorker_RunWorkerCompleted;
                        DnsWorker.RunWorkerAsync(IpAddress);
                        DnsWorker.Dispose();
                    }
                    catch (SocketException exc)
                    {
                        Console.WriteLine("Aucun hôte n'a pu être trouvé à cette adresse là..." + exc.ToString());
                        continue;
                    }
                }
                subnetStart = subnetStart + 1;
            }



        }
        private void DnsWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            var host = new IPHostEntry { AddressList = new[] { IPAddress.Parse((string)e.Argument) } };
            try
            {
                ipAddress = (string)e.Argument;
                var result = Dns.GetHostEntry(host.AddressList[0]);
                e.Result = result.HostName;
            }
            catch (SocketException exc)
            {
                Console.WriteLine(exc.ToString() + " : " + e.Result);
            }
        }

En cas de besoin comme c'est une WinForm je met l'application entière à tester sur dropbox pour avoir le même état que moi : Dossier du projet via dropbox Voilà si quelqu'un à une idée, je suis vraiment preneur. A savoir que je reste tout de même débutant en c#

Bonne journée,

tchoune

Édité par tchoune

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte