Ping avec vb6

Résolu
cs_ranitta Messages postés 2 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 20 août 2010 - 16 août 2010 à 17:44
cs_ranitta Messages postés 2 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 20 août 2010 - 20 août 2010 à 13:34
bonjour tout le monde, priere j'ai besoin d votre aide, dans le cadre du projet de fin d'etudes je cherche une petite application en vb6 qui teste la connectivité d'une machine a un reseau dans chaque intervalle de temps par l'util ping et affiche le resulta? merci d'avance
A voir également:

4 réponses

NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
16 août 2010 à 18:48
tu peux utiliser la fonction shell:
Shell "ping 192.10.3.4" '192.10.3.4:juste un exemple


Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
3
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
16 août 2010 à 19:19
Façon pas trop sauvage via l'API Winsock : http://files.codes-sources.com/fichier.aspx?id=36588&f=SocketAPIPing\Form1.frm

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
3
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
17 août 2010 à 23:59
J'ai essayé plusieurs méthode de ping, publié ici. Ma préférée et celle qui fonctionne sur à chaque fois est celui là :

dans un module :
Option Explicit

Const SOCKET_ERROR = 0
Private Type WSAdata
    wVersion As Integer
    wHighVersion As Integer
    szDescription(0 To 255) As Byte
    szSystemStatus(0 To 128) As Byte
    imaxsockets As Integer
    iMaxUdpDg As Integer
    lpVendorInfo As Long
End Type
Private Type Hostent
    h_name As Long
    h_aliases As Long
    h_addrtype As Integer
    h_length As Integer
    h_addr_list As Long
End Type
Private Type IP_OPTION_INFORMATION
    TTL As Byte
    Tos As Byte
    Flags As Byte
    OptionsSize As Long
    OptionsData As String * 128
End Type
Private Type IP_ECHO_REPLY
    Address(0 To 3) As Byte
    Status As Long
    RoundTripTime As Long
    DataSize As Integer
    Reserved As Integer
    Data As Long
    Options As IP_OPTION_INFORMATION
End Type

Private Declare Function GetHostByName Lib "wsock32.dll" Alias "gethostbyname" (ByVal HostName As String) As Long
Private Declare Function WSAStartup Lib "wsock32.dll" (ByVal wVersionRequired&, lpWSAdata As WSAdata) As Long
Private Declare Function WSACleanup Lib "wsock32.dll" () As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
Private Declare Function IcmpCreateFile Lib "icmp.dll" () As Long
Private Declare Function IcmpCloseHandle Lib "icmp.dll" (ByVal HANDLE As Long) As Boolean
Private Declare Function IcmpSendEcho Lib "ICMP" (ByVal IcmpHandle As Long, ByVal DestAddress As Long, ByVal RequestData As String, ByVal RequestSize As Integer, RequestOptns As IP_OPTION_INFORMATION, ReplyBuffer As IP_ECHO_REPLY, ByVal ReplySize As Long, ByVal TimeOut As Long) As Boolean

Public Function DoPing2(HostName As String, Optional sResultat As String) As Boolean
    Dim hfile As Long, lpWSAdata As WSAdata
    Dim hHostent As Hostent, AddrList As Long
    Dim Address As Long, rIP As String
    Dim OptInfo As IP_OPTION_INFORMATION
    Dim EchoReply As IP_ECHO_REPLY
    Const iTimeOut As Integer = 200    'ms

    On Error GoTo err:


    Call WSAStartup(&H101, lpWSAdata)

    If GetHostByName(HostName + String(64 - Len(HostName), 0)) <> SOCKET_ERROR Then
        CopyMemory hHostent.h_name, ByVal GetHostByName(HostName + String(64 - Len(HostName), 0)), Len(hHostent)
        CopyMemory AddrList, ByVal hHostent.h_addr_list, 4
        CopyMemory Address, ByVal AddrList, 4
    End If

    hfile = IcmpCreateFile()
    If hfile = 0 Then
        MsgBox "Impossible de créer le Handle du Ping"
        Exit Function
    End If
    OptInfo.TTL = 255
    If IcmpSendEcho(hfile, Address, String(32, "A"), 32, OptInfo, EchoReply, Len(EchoReply) + 8, iTimeOut) Then
        rIP = CStr(EchoReply.Address(0)) + "." + CStr(EchoReply.Address(1)) + "." + CStr(EchoReply.Address(2)) + "." + CStr(EchoReply.Address(3))
    Else
        ' Timeout
        err.Raise 1234, "Time out", "Ping failed..."
    End If
    If EchoReply.Status = 0 Then
        'Ping OK
        sResultat = rIP
        DoPing2 = True
    Else
        ' Ping Failure ...
        DoPing2 = False
    End If
    Call IcmpCloseHandle(hfile)
    Call WSACleanup
    Exit Function

err:
    DoPing2 = False
    err.Clear
    Call IcmpCloseHandle(hfile)
    Call WSACleanup
End Function


Pour pinger tu fais :
dim MonPing as boolean
MonPing = DoPing2 (TonAdresseIP)
1
cs_ranitta Messages postés 2 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 20 août 2010
20 août 2010 à 13:34
merciiiiiiiiiiiiiiiiiiii tout l mond
0
Rejoignez-nous