none
Descobrir IP de máquina na Rede.

    Pergunta

  • Boa noite pessoal.

    Pesquisei sobre como descobrir IP das maquinas da minha rede pelo Hostname e cheguei a um resultado que resolve parcialmente meu proplema.

    Parcialmente porque o programa descobre os Endereços IP das máquinas normalmente, mas só nas máquinas com Windows XP. Ficando assim:

    http://img88.imageshack.us/img88/5034/ipv4.jpg

     

    Mas quando tento descobrir o IP de uma máquina com Windows 7 ele me retorna o IPv6

    http://img192.imageshack.us/img192/4421/ipv6.jpg

     

    O Código que estou usando é este:

    Imports System.Net
    Imports System.Net.Dns
    
    
    Public Class Form1
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
    
        Dim localHost As String
    
        Dim IPHEntry
    
        Dim IPAdd As IPAddress()
    
        localHost = Dns.GetHostName()
    
        IPHEntry = Dns.GetHostEntry(txthost.Text)
    
        IPAdd = IPHEntry.AddressList
    
    
        For i = 0 To IPAdd.GetUpperBound(0)
    
        Next
    
        TextBox1.Text = IPAdd(0).ToString
    
    
      End Sub
    
    
    
    End Class
    
    Alguém sabe o que pode gerar este "problema"?

    Abraços pessoal.

    quinta-feira, 27 de janeiro de 2011 00:34

Respostas

  • Olá,

    Você está capturando o primeiro endereço IP do host [IPAdd(0)]. para descobrir qual o IPV4 vc testa esse array de endereços, desta forma:

      Dim localHost As String
      Dim IPHEntry
      Dim IPAdd As IPAddress()
    
      localHost = Dns.GetHostName()
      IPHEntry = Dns.GetHostEntry(txthost.Text)
      IPAdd = IPHEntry.AddressList
    
      For Each address As IPAddress In IPAdd
       If address.AddressFamily = Sockets.AddressFamily.InterNetwork Then
        TextBox1.Text = address.ToString
       End If
      Next

    Att. 


    Lucas
    • Editado devLucas quinta-feira, 27 de janeiro de 2011 02:05 .
    • Marcado como Resposta Srt Jean quinta-feira, 27 de janeiro de 2011 19:25
    quinta-feira, 27 de janeiro de 2011 02:04

Todas as Respostas

  • Olá,

    Você está capturando o primeiro endereço IP do host [IPAdd(0)]. para descobrir qual o IPV4 vc testa esse array de endereços, desta forma:

      Dim localHost As String
      Dim IPHEntry
      Dim IPAdd As IPAddress()
    
      localHost = Dns.GetHostName()
      IPHEntry = Dns.GetHostEntry(txthost.Text)
      IPAdd = IPHEntry.AddressList
    
      For Each address As IPAddress In IPAdd
       If address.AddressFamily = Sockets.AddressFamily.InterNetwork Then
        TextBox1.Text = address.ToString
       End If
      Next

    Att. 


    Lucas
    • Editado devLucas quinta-feira, 27 de janeiro de 2011 02:05 .
    • Marcado como Resposta Srt Jean quinta-feira, 27 de janeiro de 2011 19:25
    quinta-feira, 27 de janeiro de 2011 02:04
  • Ha... Maravilha devLucas.

    Funcionou perfeitamente como eu queria.

    Obrigado.

    quinta-feira, 27 de janeiro de 2011 19:25