Comment obtenir l'adresse IP du système en envoyant une adresse IP Mac comme entrée à l'aide de la codage VB.net? P>
10 Réponses :
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
Si vous utilisez vb.net 2.0 ou mieux, vous devriez pouvoir l'utiliser hors de la boîte :)
Depuis gethostbyname () code> est obsolète et vous donne un avertissement dans vb.net, vous pouvez simplement le remplacer par gethostenry () code> qui fait la même chose, mais rend le compilateur heureux . EG: striptaddress = system.net.dns.gethostentry (strhostname) .Addresslist (0) Bague .tost () Code>
É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 () code> et dans la boucle, vous ne voulez simplement vérifier / imprimer / quel que soit adr.tostring () code>
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.
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)
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
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.
Voici l'exemple pour cela.
Dans cet exemple, nous pouvons obtenir une adresse IP de notre nom d'hôte donné.
merci shuwaiee
J'ai fait une légère changements cependant comme l'utiliser dans un 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 espère que cela aide quelqu'un. P> p> Sub code> déjà. p> & VBCLLF & p>
Dim ipAddress As IPAddress Dim ipHostInfo As IPHostEntry = Dns.Resolve(Dns.GetHostName()) ipAddress = ipHostInfo.AddressList(0)
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
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
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
Label12.Text = "My ID : " + System.Net.Dns.GetHostByName(Net.Dns.GetHostName()).AddressList(0).ToString() use this code, without any variable