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

pokbizou Messages postés 13 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 13 novembre 2003 - 24 mai 2002 à 09:03
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

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
Ce code ne fonctionne plus sous XP sp2. En effet, l'utilisation du WSAStartup ne fait plus rien ; la variable de type "tagWSAData" n'est pas affecté par l'appel ; aucune erreur n'est générée !
J'ai recherché sur le Net des informations sur une solution de remplacement, mais personne ne répond.

Si vous avez une nouvelle méthode, je suis preneur.

GOWAP
cbnet Messages postés 176 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 7 mars 2005
9 févr. 2005 à 21:30
moi je dis bravo aussi 9/10 ;)
Utilisateur anonyme
30 août 2004 à 23:28
Alors la moi je dis bravo franchement :D
cs_aurbadguy Messages postés 29 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 30 mai 2004
7 avril 2004 à 11:30
merci raph22 mais pourrait tu nous faire de ta modification ???
Utilisateur anonyme
11 avril 2003 à 02:40
Très pratique, mais dommage que easyping retourne un ping de 0 pour une machine non existante. Mais une p'tie modif et ca roule !

Good job Proger !
cs_Mikax Messages postés 13 Date d'inscription jeudi 4 avril 2002 Statut Membre Dernière intervention 3 mars 2004
1 juil. 2002 à 17:44
je complète :
HopeAddr = GetEcho(GetIPbinaryVal(Adresse), 10, CLng(i), "PINGECHO", CLng(HopeAddr))
et la compilation fonctionne.
Proger Messages postés 248 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 19 décembre 2008
28 juin 2002 à 16:32
Tout a fait vrai, ça . Désolé. LA fonction GetNbHop est vraiment nulle, alors je l'ai pas débogué
Debogage :
à la ligne
HopeAddr = GetEcho(GetIPbinaryVal(Adresse), 10, i, "PINGECHO", HopeAddr)
la remplacer par
HopeAddr = GetEcho(GetIPbinaryVal(Adresse), 10, Clng(i), "PINGECHO", HopeAddr)
voila.
cs_Mikax Messages postés 13 Date d'inscription jeudi 4 avril 2002 Statut Membre Dernière intervention 3 mars 2004
28 juin 2002 à 15:13
Lorsque l'on veut créer l'exe de ce programme une erreur survient pendant la compilation : type d'argument ByRef incompatible dans la fonction GetNbHope(Adresse As String) du module. Le problème est sur la variable i, qui est pourtant une simple variable integer de boucle.
Quelqu'un d'autre a-t-il eu ce problème ?
Proger Messages postés 248 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 19 décembre 2008
22 juin 2002 à 12:14
mmh, en fait ce que je comprend pas dans ta question, vbnul, c'est ce que tu appelles "la dns" ...
Supposons : c'est le nom de la machine que tu appelles "la dns" ?
C'est le nom que Windows donne à la machine (sic : "nom de l'ordinateur"), ce n'est en aucun cas le nom dns !! C'est pour ca que ça ne marchera jamais avec mon code!
Un nom de machine ne peut être résolue qu'en réseau local (et uniquement si le protocole tcp/ip seul est activé...) donc oublie pour l'avoir sur internet.
Bref, pour ton problème, j'ai le regret de te dire que c'est quasiment impossible de retrouver l'adresse IP du gars sur internet en fonction du nom de sa machine. Voila tout. ("Quasiment", car il existe une solution, mais ça ressemble a du hack, alors chuuuut ;p )
Utilisateur anonyme
13 juin 2002 à 09:47
Mais ! elle change la dns ou quoi ?
c'que j'voudrais c a partir de la dns de qqn avoir son ip internet et pouvoir brancher un chat avec lui par exemple.
Proger Messages postés 248 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 19 décembre 2008
12 juin 2002 à 22:36
woops boulette, remplacer hostnam$ par NomH As String, pour faire comme la fonction GetIPofHost.
Proger Messages postés 248 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 19 décembre 2008
12 juin 2002 à 22:35
Heu... tu veux dire que tu souhaites récupérer l'IP wan et non lan d'une machine (cas de machine passerelle) ?
cela signifie que ta machine a plusieurs IP... houla! Malheureusement mon code renverra prioritairement la première adresse IP de la première carte réseau physique de la machine.
Bon, bon ok je vais rajouter la fonction qui va bien...
GetEveryIP (hostnam$, lesIP() As Long) As Long
'le début est comme GetIPofHost() (faites donc un copier-coller vous-même :p)
'renvoie la taille du tableau lesIP() avec une adresse IP type Long dedans
'lesIP() contiendra les IP de la machines. lesIP(1) contenant la première IP, etc.
If exeAPI <> 0
For i = 0 To 250 'on cherche jusqu'a 250 autres IP pour la même machine
RtlMoveMemory exeAPI, ByVal HostInfo.hAddrList + (i * 4), 4
If exeAPI <> 0 Then
RtlMoveMemory IPv4Adr, ByVal exeAPI, HostInfo.hLen
ReDim lesIP(i + 1) As Long
lesIP(i + 1) = IPv4Adr
Else
Exit For
End If
Next i
GetEveryIP = i + 1
Else
GetEveryIP = 0
End If
End Function
Utilisateur anonyme
12 juin 2002 à 19:31
pour avoir l'ip mais pas en LAN (a prtir de la dns) on fait comment ?
alwaysgetIP marche pas.
pokbizou Messages postés 13 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 13 novembre 2003
29 mai 2002 à 13:55
Merci pour votre aide, tout marche comme je veux maintenant.
cs_aKheNathOn Messages postés 575 Date d'inscription dimanche 23 décembre 2001 Statut Membre Dernière intervention 23 octobre 2012
24 mai 2002 à 23:17
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 ...
Proger Messages postés 248 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 19 décembre 2008
24 mai 2002 à 18:44
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" .
pokbizou Messages postés 13 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 13 novembre 2003
24 mai 2002 à 13:59
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
24 mai 2002 à 10:46
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
24 mai 2002 à 09:03
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
Rejoignez-nous