Page 1 of 1

Ping several items in xHarbour

Posted: Fri Dec 16, 2005 6:54 pm
by byron.hopp
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,

Posted: Sun Dec 18, 2005 5:17 pm
by Jeff Barnes
Byron,

Check your e-mail.


Jeff

Re: Ping several items in xHarbour

Posted: Wed Mar 12, 2025 4:31 pm
by theotokos
Olá ! estou precisando de fazer praticamente a mesma coisa... vc conseguiu? pode compartilhar por favor, obgdão!

Re: Ping several items in xHarbour

Posted: Wed Mar 12, 2025 5:00 pm
by karinha

Re: Ping several items in xHarbour

Posted: Wed Mar 12, 2025 5:18 pm
by byron.hopp
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"