Partage
  • Partager sur Facebook
  • Partager sur Twitter

[VB.net] Effectuer un Trace Route

Composant gratuit ? Moyen Simple ?

    1 avril 2011 à 10:19:58

    Salut à tous,

    Dans le cadre de mon boulot, je programme un logiciel qui ping des adresses LAN et des routeurs.

    Evidemment, pour les adresses LAN, cela ne pose aucun problème puisque j'utilise le protocole ICMP et que les postes me répondent directement.

    Le problème apparaît lorsque je veux effectuer un ping sur les routeurs. Nous n'en sommes pas propriétaires, et les accès ICMP sont protégés par notre fournisseur.

    J'ai donc eu l'idée de faire un trace route entre mon IP locale et l'IP locale d'un poste d'un autre site. A partir de là, je pourrais analyser un panel d'IPs pour savoir si la liaison se fait bien avec le routeur.

    en gros, j'aurais (en équivalant invite de commande) :

    C:\>tracert 192.168.aa.aa
    
    Détermination de l'itinéraire vers poste.domaine.local [192.168.aa.aa]
    avec un maximum de 30 sauts :
    
       1   <1 ms   <1 ms   <1 ms   192.168.bb.bb
       2   <1 ms   <1 ms   <1 ms   192.168.cc.cc
       3   31 ms   34 ms   30 ms   ddd.ddd.ddd.ddd
       4   45 ms   43 ms  134 ms   eee.eee.eee.eee
       5  117 ms   51 ms  126 ms   poste.domaine.local [192.168.aa.aa]
    
    Itinéraire déterminé.

    ici, j'ai donc :

    • 1 : Switch (LAN)
    • 2 : Routeur 1 (LAN)
    • 3 : Routeur 2 (WAN-fournisseur)
    • 4 : Routeur 3 (WAN-fournisseur)
    • 5 : IP de destination (LAN)


    Je voudrais donc analyser ce résultat pour savoir si j’accède à mes routeurs...

    J'ai longuement cherché sur internet des moyens rapides et optimisés de faire des TraceRt en VB.net, mais les seuls résultats que j'ai obtenu sont des composants payant allant jusqu’à 200€ pour certains.

    Connaîtriez-vous donc un composant gratuit ou un moyen de faire des TraceRt en VB.net (il faut que l'execution soit assez rapide car j'ai plusieurs VPN à tester avec une boucle For dans un BackgroundWorker.)

    Merci d'avance, Sp4s12
    • Partager sur Facebook
    • Partager sur Twitter
      1 avril 2011 à 16:44:51

      Salut,

      une petite recherche me sors ceci :

      Imports System
      Imports System.Net
      Imports System.Net.Sockets
      
      Public Class Form1
      
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
      As System.EventArgs) Handles Button1.Click
      Dim p As New Process()
      Dim pInfo As New ProcessStartInfo()
      pinfo.UseShellExecute =3D False
      pInfo.RedirectStandardOutput =3D True
      pInfo.Arguments =3D "192.168.4.253"
      pInfo.WorkingDirectory =3D "C:\windows\system32"
      'this for nt* computers
      pInfo.FileName =3D "tracert"
      p.StartInfo =3D pInfo
      p.Start()
      Dim sr As System.IO.StreamReader =3D p.StandardOutput
      Dim sb As New System.Text.StringBuilder("")
      Dim input As Integer =3D sr.Read()
      While input <> -1
      sb.Append(CChar(ChrW(input)))
      
      
      input =3D sr.Read()
      End While
      
      
      MessageBox.Show(sb.ToString())
      End Sub
      End Class
      


      C'est un gros copier coller pas formater de ce site ci

      Pour ce que j'en comprend, ça exécute le Tracrt de windows. Je crois que ça peut être un bon début de piste.
      • Partager sur Facebook
      • Partager sur Twitter
        1 avril 2011 à 16:47:07

        Je testerai, mais je trouve le tracert de Windows trop lent. Même si on entre le paramètre -d...
        • Partager sur Facebook
        • Partager sur Twitter
          2 avril 2011 à 12:50:30

          Juste par curiosité (et si tu peux répondre), quel est l'intérêt de pinger des routeurs WAN ? :euh:

          Comme tu l'as dit, les routeurs WAN qui relaient les paquets d'un site à l'autre sont gérés par différents fournisseurs d'accès. Ils pourraient à tout moment éteindre plusieurs de ces routeurs et les paquets suivraient simplement une autre route à travers le réseau, sans que ça gène le trafic... Je ne vois donc pas vraiment l'intérêt d'une information du genre "le routeur ddd.ddd.ddd.ddd ne répond pas !" ? :o
          • Partager sur Facebook
          • Partager sur Twitter
            2 avril 2011 à 14:04:48

            Je ne suis que l'adjoint à l'administrateur réseau dans le cadre d'un contrat de professionnalisation pour mon BTS. Par conséquent, je ne connais pas encore toute l'architecture réseau de ma boite. Mais vraisemblablement, il me semble me rappeler que nous avons bien plusieurs routeurs dédiés à notre utilisation. Il nous est très important de connaître en temps réel la connectivité de nos VPN car sur un de nos sites, nous possédons des serveurs d'applications qui ne doivent pas cesser de communiquer avec les autres sites. Tout ça dans le but d'intervenir au près de notre prestataire le plus vite possible en cas de chute de connexion.

            Mon application se charge de faire différents pings sur différents équipements réseau et, le cas échéant, envoyer un mail en cas de chute de connexion. En parallèle, lorsque nous sommes sur notre poste de travail, elle permet aussi de faire du monitoring puisque elle va récupérer des graphes sur le site de notre prestataire et nous montre l'état de tous les pings par le biais de voyants.
            • Partager sur Facebook
            • Partager sur Twitter

            [VB.net] Effectuer un Trace Route

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown