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