Re: Computer und Port bereit ?
Verfasst: 12.03.2011 10:34
Ping geht nicht mit mit PB 64bit?. Mit PB 32bit auf Win7 X64 geht...
Code: Alles auswählen
If IcmpSendEcho_(lngHPort, lngDAddress, @strMessage, MsgLen, #Null, *buffer, SizeOf(ICMP_ECHO_REPLY) + MsgLen, #PING_TIMEOUT)
Code: Alles auswählen
Procedure Ping(IP.s, TimeOUT, *Result.INTEGER = #Null)
Protected lngHPort, strMessage.s, MsgLen, lngDAddress
Protected *ECHO.ICMP_ECHO_REPLY, Result
lngHPort = IcmpCreateFile_()
If lngHPort <> #INVALID_HANDLE_VALUE
strMessage = "Echo This Message back to me"
MsgLen = StringByteLength(strMessage)
*ECHO = AllocateMemory(SizeOf(ICMP_ECHO_REPLY) + MsgLen + 16)
lngDAddress = MakeIPAddress(Val(StringField(IP.s, 1, ".")), Val(StringField(IP.s, 2, ".")), Val(StringField(IP.s, 3, ".")), Val(StringField(IP.s, 4, ".")))
Result = -1
If *ECHO
If IcmpSendEcho_(lngHPort, lngDAddress, @strMessage, MsgLen, #Null, *ECHO, SizeOf(ICMP_ECHO_REPLY) + MsgLen + 16, TimeOUT)
Result = *ECHO\RoundTripTime
Debug PeekS(*ECHO\Data, *ECHO\DataSize)
EndIf
FreeMemory(*ECHO)
EndIf
IcmpCloseHandle_(lngHPort)
EndIf
If *Result
*Result\i = Result
EndIf
ProcedureReturn Result
EndProcedure
Define.i i
If Ping("127.0.0.1", 1000, @i) = -1
Debug "Error, no host found!"
Else
Debug "Ping answer: " + Str(i) + "ms"
EndIf
Du weisst ja, dass man immer schön die Quellenangaben mitliefern sollte.Elektrolurch hat geschrieben: Ich habe mittlerweile selbst einen kleinen Ping gebastelt.