none
No puedo añadir las ip escaneadas al listbox RRS feed

  • Pregunta

  • Buenas no se por que no me agrega las ip al listbox en este caso agrega todas las escanedas 

    pero estoy intentando agregar solo las que haga ping

    Gracias

    For i = 1 To 255
    
    
                If My.Computer.Network.Ping("192.168.1." & i) = True Then
    
                    ListBox1.Items.Add("192.168.1." & i)
                Else
                    'MessageBox.Show("Conexion erronea", "", MessageBoxButtons.OK, MessageBoxIcon.Error)
                End If
            Next

    sábado, 6 de julio de 2019 17:38

Respuestas

  • Hola

    el bucle tarda como 5 minutos para concluir

    debieras darle tiempo

    mira mejorando un poco la rutina esta tarda solo unos segundos

    inserte 2 listBox

    listBox1 para lasa conectadas

    listBox2 para las libres

     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
         ListBox1.Items.Clear()
         ListBox2.Items.Clear()
         For index = 1 To 250
             Dim Ip = "192.168.0." + index.ToString
             Dim tr = New Thread(New ThreadStart(Sub() PingIp(Ip)))
             tr.Start()
         Next
     End Sub
    
     Private Sub PingIp(ByVal ip)
         If My.Computer.Network.Ping(ip) = True Then
             Llenatxt(ip)
         Else
             Llenatxt2(ip)
         End If
     End Sub
    
     Private Delegate Sub Funcion()
    
     Private Sub Llenatxt(ByVal ip As String)
         If Me.InvokeRequired Then
             Me.Invoke(New Funcion(Sub() Llenatxt(ip)))
         Else
             ListBox1.Items.Add(ip)
         End If
     End Sub
    
     Private Sub Llenatxt2(ByVal ip As String)
         If Me.InvokeRequired Then
             Me.Invoke(New Funcion(Sub() Llenatxt2(ip)))
         Else
             ListBox2.Items.Add(ip)
         End If
     End Sub
    espero te sirva
    • Marcado como respuesta Diablo_Rojo lunes, 8 de julio de 2019 11:06
    domingo, 7 de julio de 2019 23:29

Todas las respuestas

  • Hola

    intenta con esto

    Dim IIP As String
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim thr As Thread = New Thread(New ThreadStart(AddressOf readIp))
        thr.Start()
    End Sub
    
    Private Sub readIp()
        For i = 1 To 255
            Dim Ip = "192.168.0." + i.ToString
            If My.Computer.Network.Ping(Ip) = True Then
                IIP = Ip
                Llenatxt()
            Else
                'MessageBox.Show("Conexion erronea", "", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        Next
    End Sub
    
    Private Delegate Sub Funcion()
    
    Private Sub Llenatxt()
        If Me.InvokeRequired Then
            Me.Invoke(New Funcion(AddressOf Llenatxt))
        Else
            ListBox2.Items.Add(IIP)
        End If
    End Sub
    


    • Editado Marti Llam domingo, 7 de julio de 2019 4:53
    domingo, 7 de julio de 2019 4:51
  • Gracias por responder Martin Llam pero sigue sin agregarme las ip

    1000 gracias por la ayuda

    domingo, 7 de julio de 2019 16:32
  • Hola 

    en mi caso particular el Ip tiene base 0 osea 192.168.0.xxx

    En tu caso al parecer tiene 1 osea 192.168.1.xxx

    porque esta rutina corre bien en mi ordenador

    creo debieras revisar la Ip de tu red

    domingo, 7 de julio de 2019 17:20
  • Si era eso pero solo me agrega la 192.168.1.1 no me hace el bucle
    domingo, 7 de julio de 2019 17:31
  • Hola

    el bucle tarda como 5 minutos para concluir

    debieras darle tiempo

    mira mejorando un poco la rutina esta tarda solo unos segundos

    inserte 2 listBox

    listBox1 para lasa conectadas

    listBox2 para las libres

     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
         ListBox1.Items.Clear()
         ListBox2.Items.Clear()
         For index = 1 To 250
             Dim Ip = "192.168.0." + index.ToString
             Dim tr = New Thread(New ThreadStart(Sub() PingIp(Ip)))
             tr.Start()
         Next
     End Sub
    
     Private Sub PingIp(ByVal ip)
         If My.Computer.Network.Ping(ip) = True Then
             Llenatxt(ip)
         Else
             Llenatxt2(ip)
         End If
     End Sub
    
     Private Delegate Sub Funcion()
    
     Private Sub Llenatxt(ByVal ip As String)
         If Me.InvokeRequired Then
             Me.Invoke(New Funcion(Sub() Llenatxt(ip)))
         Else
             ListBox1.Items.Add(ip)
         End If
     End Sub
    
     Private Sub Llenatxt2(ByVal ip As String)
         If Me.InvokeRequired Then
             Me.Invoke(New Funcion(Sub() Llenatxt2(ip)))
         Else
             ListBox2.Items.Add(ip)
         End If
     End Sub
    
    espero te sirva

    • Editado Marti Llam domingo, 7 de julio de 2019 23:28
    domingo, 7 de julio de 2019 23:04
  • Hola

    el bucle tarda como 5 minutos para concluir

    debieras darle tiempo

    mira mejorando un poco la rutina esta tarda solo unos segundos

    inserte 2 listBox

    listBox1 para lasa conectadas

    listBox2 para las libres

     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
         ListBox1.Items.Clear()
         ListBox2.Items.Clear()
         For index = 1 To 250
             Dim Ip = "192.168.0." + index.ToString
             Dim tr = New Thread(New ThreadStart(Sub() PingIp(Ip)))
             tr.Start()
         Next
     End Sub
    
     Private Sub PingIp(ByVal ip)
         If My.Computer.Network.Ping(ip) = True Then
             Llenatxt(ip)
         Else
             Llenatxt2(ip)
         End If
     End Sub
    
     Private Delegate Sub Funcion()
    
     Private Sub Llenatxt(ByVal ip As String)
         If Me.InvokeRequired Then
             Me.Invoke(New Funcion(Sub() Llenatxt(ip)))
         Else
             ListBox1.Items.Add(ip)
         End If
     End Sub
    
     Private Sub Llenatxt2(ByVal ip As String)
         If Me.InvokeRequired Then
             Me.Invoke(New Funcion(Sub() Llenatxt2(ip)))
         Else
             ListBox2.Items.Add(ip)
         End If
     End Sub
    espero te sirva
    • Marcado como respuesta Diablo_Rojo lunes, 8 de julio de 2019 11:06
    domingo, 7 de julio de 2019 23:29
  • Gracias por la respuesta Marti Llam antes de marcar como respuesta 

    podrias decirme por que no se agregaban las ip al listbox?

    muchisimas gracias 

    lunes, 8 de julio de 2019 8:08
  • Hola lo que pasa es que dentro del bucle se ven en pantalla hasta el final del bucle, y cuando las cambias de hilo utilizas un delegado para invocarlas al hilo principal y se muestran en tiempo real, ademas en el ultimo se generan 255 hilos para acelerar los ping y es mas rapido
    lunes, 8 de julio de 2019 14:47
  • Gracias 
    lunes, 8 de julio de 2019 15:38