Recuperer ip par dns et ping en milisecondes [Résolu]

Sentynel 86 Messages postés jeudi 7 janvier 2010Date d'inscription 13 juillet 2013 Dernière intervention - 14 déc. 2011 à 21:27 - Dernière réponse : Sentynel 86 Messages postés jeudi 7 janvier 2010Date d'inscription 13 juillet 2013 Dernière intervention
- 14 déc. 2011 à 23:51
Bonjour à tous, j'essaie actuellement de récupérer une adresse ip par un dns et récuperer le ping en ms.
Pour le ping cela a été chose facile mais concernant l'adresse ip je me vois obliger de demander votre aide.

Dans mon application, j'utilise un :

-timer (timerping) réglé à 1000 ms.
-une listbox (listboxping) qui contiendra les informations (ping, dns, ip)
-une textbox (textboxping) pour tapper l'adresse internet (dns)
-deux boutons pour lancer et arrêter le procéder.

Voici mon code :

         Dim DNS As String = TextBoxPing.Text
         Dim IP As System.Net.IPAddress() = System.Net.Dns.GetHostAddresses(DNS)
         'Exemple : textboxping.text = www.google.com
         ListBoxPing.Items.Add("Ping from " & TextBoxPing.Text & " (IP:" & IP.ToString & ")" & " = " & GetPing(TextBoxPing.Text) & " ms")


Mon problème c'est que je n'arrive pas à afficher l'addresse ip, l'application me donne cette ligne :

Ping from www.google.com (IP:System.net.IPAddress[]) 31 ms


Quelqu'un aurait une solution s'il vous plait ? :-)
Afficher la suite 

3 réponses

Répondre au sujet
NHenry 14129 Messages postés vendredi 14 mars 2003Date d'inscription 19 avril 2018 Dernière intervention - 14 déc. 2011 à 23:07
+3
Utile
Bonjour,

Un nom DNS peut cacher plusieurs adresses IP.
Si tu ne veux que les ips V4, vérifie si le type est System.Net.IpAddress, pour IpV6 : System.Net.IpAddressV6 (je crois).

Ensuite, un .ToString pour récupérer au format texte.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de NHenry
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 14 déc. 2011 à 23:40
+3
Utile
En effet NHenry a raison,

Comme tu le montre toi même dans ton code le paramètre retourné par GetHostAddresses est un tableau.

Dim IP As System.Net.IPAddress() = System.Net.Dns.GetHostAddresses(DNS)

le plus approprié est donc :

Dim IPs As System.Net.IPAddress() = System.Net.Dns.GetHostAddresses(DNS)
For Each IP As System.Net.IPAddress in IPs
    ListBoxPing.Items.Add("Ping from " & TextBoxPing.Text & " (IP:" & IP.ToString & ")" & _
    " = " & GetPing(TextBoxPing.Text) & " ms")
Next

ou encore
Dim IPs As System.Net.IPAddress() = System.Net.Dns.GetHostAddresses(DNS)
If IP.length > 0 Then
    ListBoxPing.Items.Add("Ping from " & TextBoxPing.Text & " (IP:" & IP(0).ToString & ")" & _
    " = " & GetPing(TextBoxPing.Text) & " ms")
End If

NHenry la classe IPAddress gère nativement les IPv6 il me semble.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Mayzz
Sentynel 86 Messages postés jeudi 7 janvier 2010Date d'inscription 13 juillet 2013 Dernière intervention - 14 déc. 2011 à 23:51
0
Utile
En effet, merci beaucoup à vous deux, vos réponses m'ont beaucoup aidé.
Commenter la réponse de Sentynel

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.