IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

incrémenter une adresse ip de 1


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 62
    Points : 49
    Points
    49
    Par défaut incrémenter une adresse ip de 1
    Bonjour à tous,

    Je cherche le moyen d'incrémenter de 1 une adresse ip contenu dans une variable string afin de tester un intervalle d'adresse. J'ai essayé un récupérant la fin de l'adresse mais le problème c'est que l'adresse ne contient jamais le même nombre de caractère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Do While Not adresse_deb = adresse_fin
                getPingTime(adresse_deb)
                'fin_adresse = adresse_deb.Substring(10)
                'fin_adresse = fin_adresse + 1
                'adresse_deb = (adresse_deb.Substring(0, 10)) & fin_adresse
            Loop
     
    Private Function getPingTime(ByVal adresseIP As String) As String
            ' AdresseIP : chaîne de caractère contenant l'adresse IP de l'hôte à "pinger"
            ' Instanciation d'un objet Ping
            Dim monPing As New Ping
            ' Objet PingReply qui nous permettra de récupérer le résultat
            Dim maReponsePing As PingReply
            Dim resultatPing As String = Nothing
            Try
                ' Récupération du résultat obtenu par la méthode Send()
                maReponsePing = monPing.Send(adresseIP, Nothing)
                ' Formatage du résultat avec récupération du temps en millisecondes
                ' grâce à la propriété RoundtripTime.
                resultatPing = "Réponse de " & adresseIP & " en " & maReponsePing.RoundtripTime.ToString & " ms."
                MsgBox(resultatPing)
            Catch ex As PingException
                ' Formatage de l'exception affichée
                resultatPing = "Impossible de joindre l'hôte : " & ex.Message
                Return resultatPing
            End Try
        End Function
    Merci de l'aide

  2. #2
    Membre habitué
    Profil pro
    Développeur
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Points : 127
    Points
    127
    Par défaut
    Tu peux peut-être utiliser la fonction String.Split pour scinder ton IP sur chaque "." détecté, tu incrémentes ton dernier numéro, et tu concatenes les éléments.

  3. #3
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Pourquoi faire simple quand on peut faire compliqué ?

    En C# :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
            public static void MiniSwap([In,Out]byte[] tab, int i, int j)
            {
                byte b = tab[i];
                tab[i] = tab[j];
                tab[j] = b;
            }
     
            public static IPAddress AddToIp(IPAddress baseAdr, int value)
            {
                byte[] b = baseAdr.GetAddressBytes();
                MiniSwap(b, 0, 3);
                MiniSwap(b, 1, 2);
     
                b = BitConverter.GetBytes(BitConverter.ToInt32(b, 0) + value);
     
                MiniSwap(b, 0, 3);
                MiniSwap(b, 1, 2);
     
                return new IPAddress(b);
            }
     
            static void Main(string[] args)
            {
                IPAddress b = IPAddress.Parse("127.0.0.1");
                for (int i = 0; i < 600; i++)
                {
                    b = AddToIp(b, 1);
                    Console.WriteLine(b);
                }
                Console.WriteLine(AddToIp(b, 6000));
                Console.ReadLine();
              }

    Et la traduction en vb :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    Public Shared Sub MiniSwap(<[In](), Out()> ByVal tab As Byte(), ByVal i As Integer, ByVal j As Integer)
        Dim b As Byte = tab(i)
        tab(i) = tab(j)
        tab(j) = b
    End Sub
     
    Public Shared Function AddToIp(ByVal baseAdr As IPAddress, ByVal value As Integer) As IPAddress
        Dim b As Byte() = baseAdr.GetAddressBytes()
        MiniSwap(b, 0, 3)
        MiniSwap(b, 1, 2)
     
        b = BitConverter.GetBytes(BitConverter.ToInt32(b, 0) + value)
     
        MiniSwap(b, 0, 3)
        MiniSwap(b, 1, 2)
     
        Return New IPAddress(b)
    End Function
     
    Private Shared Sub Main(ByVal args As String())
        Dim b As IPAddress = IPAddress.Parse("127.0.0.1")
        For i As Integer = 0 To 599
            b = AddToIp(b, 1)
            Console.WriteLine(b)
        Next
        Console.WriteLine(AddToIp(b, 6000))
        Console.ReadLine()
    End Sub

Discussions similaires

  1. [E-03] Incrémenter une adresse .address
    Par Pierre845 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/12/2008, 17h09
  2. [débutant][xsl]incrémenter une variable
    Par guitalca dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 01/04/2003, 15h19
  3. Réponses: 5
    Dernier message: 25/03/2003, 17h27
  4. commande dos pour résoudre une adresse ip
    Par stephy dans le forum Développement
    Réponses: 2
    Dernier message: 17/12/2002, 14h04
  5. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo