12
votes

Comment obtenir le nom de l'ordinateur et l'adresse IP d'un ordinateur à l'aide de vb.net?

Comment obtenir l'adresse IP du système en envoyant une adresse IP Mac comme entrée à l'aide de la codage VB.net?


0 commentaires

10 Réponses :


33
votes

Utilisez la classe My :)

Private Sub GetIPAddress()

Dim strHostName As String

Dim strIPAddress As String



strHostName = System.Net.Dns.GetHostName()

strIPAddress = System.Net.Dns.GetHostByName(strHostName).AddressList(0).ToString()


MessageBox.Show("Host Name: " & strHostName & "; IP Address: " & strIPAddress)

End Sub


4 commentaires

Si vous utilisez vb.net 2.0 ou mieux, vous devriez pouvoir l'utiliser hors de la boîte :)


Depuis gethostbyname () est obsolète et vous donne un avertissement dans vb.net, vous pouvez simplement le remplacer par gethostenry () qui fait la même chose, mais rend le compilateur heureux . EG: striptaddress = system.net.dns.gethostentry (strhostname) .Addresslist (0) Bague .tost ()


Également évidemment cela ne vous donne que la première adresse IP, si vous souhaitez boucler toutes les adresses, il est également assez facile: pour chaque ADR dans system.net.dns.gethostentry (strhostname) .Addresslist () et dans la boucle, vous ne voulez simplement vérifier / imprimer / quel que soit adr.tostring ()


Cet anwser ne fonctionnera pas pour tout le monde, cela fonctionne parfois car il n'y a que 1 article dans la trappiste. Quand il y en a beaucoup, le plus souvent, les premiers ne sont pas des adresses IPv4. La bonne façon serait Geipv4Address () de la réponse d'Eagleeye. La boucle trouvera l'adresse IPv4 où que ce soit dans la liste.



-2
votes
    Public strHostName As String
    Public strIPAddress As String
    strHostName = System.Net.Dns.GetHostName()
    strIPAddress = System.Net.Dns.GetHostEntry(strHostName).AddressList(0).ToString()
    MessageBox.Show("Host Name: " & strHostName & "; IP Address: " & strIPAddress)

0 commentaires

24
votes
Private Function GetIPv4Address() As String
    GetIPv4Address = String.Empty
    Dim strHostName As String = System.Net.Dns.GetHostName()
    Dim iphe As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(strHostName)

    For Each ipheal As System.Net.IPAddress In iphe.AddressList
        If ipheal.AddressFamily = System.Net.Sockets.AddressFamily.InterNetwork Then
            GetIPv4Address = ipheal.ToString()
        End If
    Next

End Function

3 commentaires

C'est la bonne façon d'obtenir l'adresse IPv4. Dans mon journal ici, il y a 4 chaînes différentes dans l'adresse adressée et 3 d'entre eux sont inutiles. Vous devez boucler et les comparer à tous pour trouver lequel est le IPv4.


Qu'en est-il de plusieurs adresses IPv4?


Si quelqu'un est sur plusieurs réseaux (par exemple, un réseau local et un VPN), ils auront plusieurs autorddress IPv4. Si vous n'êtes pas sûr de savoir lequel vous voudrez, mieux de les obtenir et de laisser l'appelant décider de laquelle ils ont besoin.



3
votes

Voici l'exemple pour cela. Dans cet exemple, nous pouvons obtenir une adresse IP de notre nom d'hôte donné. xxx


0 commentaires

1
votes

merci shuwaiee

J'ai fait une légère changements cependant comme l'utiliser dans un Sub déjà. xxx

mais a également fait changer Pour la manière dont les détails sont affichés de manière à ce qu'ils puissent montrer sur des lignes séparées à l'aide de & VBCLLF & xxx

espère que cela aide quelqu'un.


0 commentaires

0
votes
Dim ipAddress As IPAddress
Dim ipHostInfo As IPHostEntry = Dns.Resolve(Dns.GetHostName())
ipAddress = ipHostInfo.AddressList(0)

0 commentaires

1
votes

montre le nom de l'ordinateur, utilisez un bouton pour l'appeler

Dim Strhostname comme chaîne p>

Dim mem As String

Private Sub GetIPAddress()

    Dim strHostName As String
    Dim strIPAddress As String
    strHostName = System.Net.Dns.GetHostName()
    strIPAddress = System.Net.Dns.GetHostByName(strHostName).AddressList(0).ToString()

    mem = strIPAddress
    MessageBox.Show("IP Address: " & strIPAddress)

End Sub


0 commentaires

0
votes
Imports System.Net

Module MainLine
    Sub Main()
        Dim hostName As String = Dns.GetHostName
        Console.WriteLine("Host Name : " & hostName & vbNewLine)
        For Each address In Dns.GetHostEntry(hostName).AddressList()
            Select Case Convert.ToInt32(address.AddressFamily)
                Case 2
                    Console.WriteLine("IP Version 4 Address: " & address.ToString)
                Case 23
                    Console.WriteLine("IP Version 6 Address: " & address.ToString)
            End Select
        Next
        Console.ReadKey()
    End Sub
End Module

0 commentaires

0
votes

version IP uniquement ...

Imports System.Net

Module MainLine
    Sub Main()
        Dim hostName As String = Dns.GetHostName
        Console.WriteLine("Host Name: " & hostName & vbNewLine)
        Console.WriteLine("IP Version 4 Address(es):")
        For Each address In Dns.GetHostEntry(hostName).AddressList().
            Where(Function(p) p.AddressFamily = Sockets.AddressFamily.InterNetwork)
            Console.WriteLine(vbTab & address.ToString)
        Next
        Console.ReadKey()
    End Sub
End Module


0 commentaires

0
votes
Label12.Text = "My ID : " + System.Net.Dns.GetHostByName(Net.Dns.GetHostName()).AddressList(0).ToString()
use this code, without any variable

0 commentaires