FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Ping several items in xHarbour
Posts: 408
Joined: Sun Nov 06, 2005 03:55 PM

Ping several items in xHarbour

Posted: Fri Dec 16, 2005 06:54 PM

Is it possible to ping one to many items directly from xHarbour. I am working with a warehouse which has 10 access points for 802-11B communications. I was hoping to be able to ping all of these units from a procedure in my program so we know they are up and responding. Is this possible.

Thanks,

Thanks,

Byron Hopp

Matrix Computer Services
Posts: 933
Joined: Sun Oct 09, 2005 01:05 PM

Ping several items in xHarbour

Posted: Sun Dec 18, 2005 05:17 PM

Byron,

Check your e-mail.

Jeff

Thanks,

Jeff Barnes



(FWH 16.11, xHarbour 1.2.3, Bcc730)
Posts: 11
Joined: Thu Sep 02, 2010 10:56 AM

Re: Ping several items in xHarbour

Posted: Wed Mar 12, 2025 04:31 PM

Olá ! estou precisando de fazer praticamente a mesma coisa... vc conseguiu? pode compartilhar por favor, obgdão!

Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Posts: 408
Joined: Sun Nov 06, 2005 03:55 PM

Re: Ping several items in xHarbour

Posted: Wed Mar 12, 2025 05:18 PM

Class McsICMP

Data nPort,nStatus,cData,cOptions,nTimeout,nElapsed,cEcho,cIp,nSeconds,cLog

Method New(cIp)

Method SendEcho()

End Class

Method New(cIpAddress) Class McsICMP

    // Internet Control Message Protocol - (ICMP)

    // Packed INternet Grouper           - (PING)

    ::cIp       := cIpAddress

    ::nPort     :=   0

    ::nStatus   :=   0

    ::cData     := "12345678901234567890123456789012"

    ::cOptions  := ""

    ::nTimeout  := 100

    ::nSeconds  :=   0

    ::cEcho     := Space(278)

return Self

Method SendEcho() Class McsICMP

    WsaStartUp()

    ::cIP           := GetHostByName(::cIP)

    WsaCleanUp()

    ::nPort         := IcmpCreateFile()

    ::nSeconds      := Seconds()

    ::nStatus       := IcmpSendEcho(::nPort,inet_addr(::cIP),::cData,Len(::cData),0,::cEcho,Len(::cEcho),::nTimeout)

    ::nElapsed      := Seconds() - ::nSeconds

    IcmpCloseHandle(::nPort)

Return (::nStatus > 0)

DLL32 FUNCTION inet_addr(cIP AS STRING) AS LONG PASCAL FROM "inet_addr" LIB "wsock32.dll"

DLL32 FUNCTION IcmpCreateFile() AS LONG PASCAL FROM "IcmpCreateFile" LIB "icmp.dll"

DLL32 FUNCTION IcmpCloseHandle(IcmpHandle AS LONG) AS LONG PASCAL FROM "IcmpCloseHandle" LIB "icmp.dll"

DLL32 FUNCTION IcmpSendEcho(IcmpHandle AS LONG,DestinationAddress AS LONG,RequestData AS STRING,RequestSize AS LONG,RequestOptions AS LONG,ReplyBuffer AS LPSTR,ReplySize AS LONG,Timeout AS LONG) AS LONG PASCAL FROM "IcmpSendEcho" LIB "icmp.dll"

DLL32 FUNCTION WSAGetLastError() AS _INT PASCAL FROM "WSAGetLastError" LIB "wsock32.dll"

Thanks,

Byron Hopp

Matrix Computer Services

Continue the discussion