; German forum: http://www.purebasic.fr/german/archive/viewtopic.php?t=5217&highlight= ; Author: Deeem2031 ; Date: 01. August 2004 ; OS: Windows ; Demo: No ; Problem: gibts da auch ein Beispiel, was ein erfolgreiches Ergebnis (also nicht -1 oder -2) zurückliefert? ; Da ich nirgendwo einen funktionierenden Ping-Code in PB gefunden haben, ; hab ich einfach mal Rings Ping-Code genommen und ihn überarbeitet. Das ist ; dabei rausgekommen: Procedure Ping(Add.s) ; If Result < 0 : Error : Else : Result = Time_in_ms ;) #PING_TIMEOUT = 2000 Echo_Buffer = AllocateMemory(SizeOf(ICMP_ECHO_REPLY)+8) ECHO.ICMP_ECHO_REPLY lngHPort = IcmpCreateFile_() If lngHPort lngResult = IcmpSendEcho_(lngHPort, inet_addr_(Add), "Echo This.", 10, 0, Echo_Buffer, SizeOf(ICMP_ECHO_REPLY)+8, #PING_TIMEOUT) CopyMemory(Echo_Buffer,ECHO,SizeOf(ICMP_ECHO_REPLY)) If lngResult = 0 PingResult = -1 ;Timeout Else If inet_addr_(Add) = ECHO\Address PingResult = ECHO\RoundTripTime Else If ECHO\Status = 0 PingResult = ECHO\RoundTripTime Else PingResult = -2 ;IP nicht erreichbar EndIf EndIf EndIf lngResult = IcmpCloseHandle_(lngHPort) Else PingResult = -3 ;IcmpCreateFile_() = 0 ... EndIf FreeMemory(Echo_Buffer) ProcedureReturn PingResult EndProcedure MessageRequester("Info",Str(Ping("127.0.0.1")),0) ; IDE Options = PureBasic v4.02 (Windows - x86) ; Folding = -