DNS, PING, TRACEROUTE SANS OCX, SANS DLL, SANS SHELL

Messages postés
13
Date d'inscription
lundi 6 mai 2002
Statut
Membre
Dernière intervention
13 novembre 2003
- - Dernière réponse : cs_gowapinou
Messages postés
1
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
21 août 2006
- 21 août 2006 à 16:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/3421-dns-ping-traceroute-sans-ocx-sans-dll-sans-shell

Afficher la suite 
pokbizou
Messages postés
13
Date d'inscription
lundi 6 mai 2002
Statut
Membre
Dernière intervention
13 novembre 2003
-
peut-on modifier la taille du ping qui est de 32 octets par défaut? J'aimerai envoyer un ping de 1500 octets.
Comment faire?
Merci
Proger
Messages postés
248
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
19 décembre 2008
-
En modifiant la fonction EasyPing, (rajout du paramètre taille de l'echo) :
t$ = PingDef(ip$, 1500)

Function PingDef(Adresse As String, SzPing As Long) As String
Dim BadAdr As Long
Dim Tp As Long
Tp = GetEcho(GetIPofCible(Adresse), 2000, 128, String(SzPing, "A"), BadAdr)
Select Case Tp
Case -2
PingDef = "Err"
Case -1
PingDef = "Timeout"
Case Else
PingDef = Tp & " ms"
End Select
End Function
pokbizou
Messages postés
13
Date d'inscription
lundi 6 mai 2002
Statut
Membre
Dernière intervention
13 novembre 2003
-
J'ai essayé tes modifications, mais les temps retournés ne sont pas ceux escomptés; je devrais recevoir des temps autour de 350 ms et je reçoie des temps autour de 60 ms. Est-ce vraiment la taille de l'echo que tu modifies avec cette fonction?
Merci d'avance
Proger
Messages postés
248
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
19 décembre 2008
-
Moi aussi je les ai essayé, et en utilisant un sniffeur de paquets pour vérifier si mon code envoyai bien 1500 octets... réponse affirmative! - et pour info, 1500 est probablement la taille de ton MTU, donc a mon avis tes 60ms sont un résultat normal. Essaye plutôt avec 5000 ou 6000 pour voir la différence.

Par la même occasion j'ai remarqué qu'en mettant des tailles de l'ordre de 2000-3000 octets, le programme renvoyai "0 ms" de ping. Le bug est corrigé, et à l'heure où j'écris, j'ai remis à jour le code ci-dessus et dans le zip.
Si tu envois un echo de taille vraiment énorme, ingérable par le prog, PingDef renverra "Err" .
cs_aKheNathOn
Messages postés
575
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2012
-
Je peux surement me tromper mais tu peux écrire ça pour fixer ton bug de taille du ping :

Tp = GetEcho(GetIPofCible(Adresse), 2000, sTTL, Space(SzPing), BadAdr)

Par contre le seul inconvénient c'est qu'il met des espaces à la place de tes A ... donc si ça peut jouer ... on peut faire autre chose ...

Dim BufferPing as String

BufferPing = Space(SzPing)

For i = 1 to len(BufferPing)
Mid(BufferPing, i, 1) = "A"
DoEvents
next i

Tp = GetEcho(GetIPofCible(Adresse), 2000, sTTL, BufferPing, BadAdr)

La boucle + le DoEvents ralentissent le prog mais le doevents c'est pour éviter que le prog plante vu le nombre de lettres à changer ...

Je n'ait pas éssayé ce que je dis mais je pense que ça doit fonctionner , si le pb du bug vient de la fonction String ...