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"