From 90af16ed032e17ff2fb7de1ee12fdff2ef4e33ae Mon Sep 17 00:00:00 2001 From: Imhotheb Date: Sat, 11 May 2019 23:06:45 +0200 Subject: [PATCH] Add ICMP Signed-off-by: Imhotheb --- PB.Ex_ICMP/PB.Ex_ICMP.pb | 77 ++++++++++++++++++++++++++++++++++ PB.Ex_ICMP/PB.Ex_ICMP.pbi | 57 +++++++++++++++++++++++++ PB.Ex_ICMP/PB.Ex_ICMP_x64.dll | Bin 0 -> 7168 bytes PB.Ex_ICMP/PB.Ex_ICMP_x86.dll | Bin 0 -> 7168 bytes README.md | 9 ++-- 5 files changed, 140 insertions(+), 3 deletions(-) create mode 100644 PB.Ex_ICMP/PB.Ex_ICMP.pb create mode 100644 PB.Ex_ICMP/PB.Ex_ICMP.pbi create mode 100644 PB.Ex_ICMP/PB.Ex_ICMP_x64.dll create mode 100644 PB.Ex_ICMP/PB.Ex_ICMP_x86.dll diff --git a/PB.Ex_ICMP/PB.Ex_ICMP.pb b/PB.Ex_ICMP/PB.Ex_ICMP.pb new file mode 100644 index 0000000..dbff46c --- /dev/null +++ b/PB.Ex_ICMP/PB.Ex_ICMP.pb @@ -0,0 +1,77 @@ +EnableExplicit + +Global PBEx_ICMP + +#PBEx_ICMP_Status_BadDestination = 11018 +#PBEx_ICMP_Status_BadHeader = 11042 +#PBEx_ICMP_Status_BadOption = 11007 +#PBEx_ICMP_Status_BadRoute = 11012 +#PBEx_ICMP_Status_DestinationHostUnreachable = 11003 +#PBEx_ICMP_Status_DestinationNetworkUnreachable = 11002 +#PBEx_ICMP_Status_DestinationPortUnreachable = 11005 +#PBEx_ICMP_Status_DestinationProhibited = 11004 +#PBEx_ICMP_Status_DestinationProtocolUnreachable = 11004 +#PBEx_ICMP_Status_DestinationScopeMismatch = 11045 +#PBEx_ICMP_Status_DestinationUnreachable = 11040 +#PBEx_ICMP_Status_HardwareError = 11008 +#PBEx_ICMP_Status_IcmpError = 11044 +#PBEx_ICMP_Status_NoResources = 11006 +#PBEx_ICMP_Status_PacketTooBig = 11009 +#PBEx_ICMP_Status_ParameterProblem = 11015 +#PBEx_ICMP_Status_SourceQuench = 11016 +#PBEx_ICMP_Status_Success = 0 +#PBEx_ICMP_Status_TimedOut = 11010 +#PBEx_ICMP_Status_TimeExceeded = 11041 +#PBEx_ICMP_Status_TtlExpired = 11013 +#PBEx_ICMP_Status_TtlReassemblyTimeExceeded = 11014 +#PBEx_ICMP_Status_Unknown = -1 +#PBEx_ICMP_Status_UnrecognizedNextHeader = 11043 + +CompilerIf #PB_Compiler_Processor = #PB_Processor_x86 + PBEx_ICMP = OpenLibrary(#PB_Any, "PB.Ex_ICMP_x86.dll") +CompilerElseIf #PB_Compiler_Processor = #PB_Processor_x64 + PBEx_ICMP = OpenLibrary(#PB_Any, "PB.Ex_ICMP_x64.dll") +CompilerEndIf + +If PBEx_ICMP + Prototype SendICMPPing(Address.p-Unicode, Timeout, TTL, DontFragment, ErrorOutput) + Global SendICMPPing.SendICMPPing = GetFunction(PBEx_ICMP, "SendICMPPing") + Prototype GetICMPStatus(ErrorOutput) + Global GetICMPStatus.GetICMPStatus = GetFunction(PBEx_ICMP, "GetICMPStatus") + Prototype GetICMPIPAddress(Output, ErrorOutput) + Global GetICMPIPAddress.GetICMPIPAddress = GetFunction(PBEx_ICMP, "GetICMPIPAddress") + Prototype GetICMPRoundTripTime(ErrorOutput) + Global GetICMPRoundTripTime.GetICMPRoundTripTime = GetFunction(PBEx_ICMP, "GetICMPRoundTripTime") + Prototype GetICMPTTL(ErrorOutput) + Global GetICMPTTL.GetICMPTTL = GetFunction(PBEx_ICMP, "GetICMPTTL") + +EndIf + +Global Output$ = Space(1024) +Global ErrorOutput$ = Space(128) + +Define ICMPStatus + +SendICMPPing("www.google.de", 1000, 128, 1, @ErrorOutput$) +ICMPStatus = GetICMPStatus(@ErrorOutput$) +If ICMPStatus = #PBEx_ICMP_Status_Success + GetICMPIPAddress(@Output$, @ErrorOutput$) + Debug "IP address: " + Output$ + Debug "Time needed: " + GetICMPRoundTripTime(@ErrorOutput$) + Debug "TTL: " + GetICMPTTL(@ErrorOutput$) +Else + Debug "ICMP-Error: " + ICMPStatus +EndIf + +CloseLibrary(PBEx_ICMP) + +; IDE Options = PureBasic 5.60 (Windows - x64) +; CursorPosition = 53 +; FirstLine = 7 +; EnableXP +; EnableUser +; Executable = PB.Ex_MSSQL.exe +; CompileSourceDirectory +; EnableCompileCount = 790 +; EnableBuildCount = 7 +; EnableUnicode \ No newline at end of file diff --git a/PB.Ex_ICMP/PB.Ex_ICMP.pbi b/PB.Ex_ICMP/PB.Ex_ICMP.pbi new file mode 100644 index 0000000..ba5f4e9 --- /dev/null +++ b/PB.Ex_ICMP/PB.Ex_ICMP.pbi @@ -0,0 +1,57 @@ +EnableExplicit + +Global PBEx_ICMP + +#PBEx_ICMP_Status_BadDestination = 11018 +#PBEx_ICMP_Status_BadHeader = 11042 +#PBEx_ICMP_Status_BadOption = 11007 +#PBEx_ICMP_Status_BadRoute = 11012 +#PBEx_ICMP_Status_DestinationHostUnreachable = 11003 +#PBEx_ICMP_Status_DestinationNetworkUnreachable = 11002 +#PBEx_ICMP_Status_DestinationPortUnreachable = 11005 +#PBEx_ICMP_Status_DestinationProhibited = 11004 +#PBEx_ICMP_Status_DestinationProtocolUnreachable = 11004 +#PBEx_ICMP_Status_DestinationScopeMismatch = 11045 +#PBEx_ICMP_Status_DestinationUnreachable = 11040 +#PBEx_ICMP_Status_HardwareError = 11008 +#PBEx_ICMP_Status_IcmpError = 11044 +#PBEx_ICMP_Status_NoResources = 11006 +#PBEx_ICMP_Status_PacketTooBig = 11009 +#PBEx_ICMP_Status_ParameterProblem = 11015 +#PBEx_ICMP_Status_SourceQuench = 11016 +#PBEx_ICMP_Status_Success = 0 +#PBEx_ICMP_Status_TimedOut = 11010 +#PBEx_ICMP_Status_TimeExceeded = 11041 +#PBEx_ICMP_Status_TtlExpired = 11013 +#PBEx_ICMP_Status_TtlReassemblyTimeExceeded = 11014 +#PBEx_ICMP_Status_Unknown = -1 +#PBEx_ICMP_Status_UnrecognizedNextHeader = 11043 + +CompilerIf #PB_Compiler_Processor = #PB_Processor_x86 + PBEx_ICMP = OpenLibrary(#PB_Any, "PB.Ex_ICMP_x86.dll") +CompilerElseIf #PB_Compiler_Processor = #PB_Processor_x64 + PBEx_ICMP = OpenLibrary(#PB_Any, "PB.Ex_ICMP_x64.dll") +CompilerEndIf + +If PBEx_ICMP + Prototype SendICMPPing(Address.p-Unicode, Timeout, TTL, DontFragment, ErrorOutput) + Global SendICMPPing.SendICMPPing = GetFunction(PBEx_ICMP, "SendICMPPing") + Prototype GetICMPStatus(ErrorOutput) + Global GetICMPStatus.GetICMPStatus = GetFunction(PBEx_ICMP, "GetICMPStatus") + Prototype GetICMPIPAddress(Output, ErrorOutput) + Global GetICMPIPAddress.GetICMPIPAddress = GetFunction(PBEx_ICMP, "GetICMPIPAddress") + Prototype GetICMPRoundTripTime(ErrorOutput) + Global GetICMPRoundTripTime.GetICMPRoundTripTime = GetFunction(PBEx_ICMP, "GetICMPRoundTripTime") + Prototype GetICMPTTL(ErrorOutput) + Global GetICMPTTL.GetICMPTTL = GetFunction(PBEx_ICMP, "GetICMPTTL") + +EndIf +; IDE Options = PureBasic 5.60 (Windows - x64) +; CursorPosition = 47 +; EnableXP +; EnableUser +; Executable = PB.Ex_MSSQL.exe +; CompileSourceDirectory +; EnableCompileCount = 450 +; EnableBuildCount = 7 +; EnableUnicode \ No newline at end of file diff --git a/PB.Ex_ICMP/PB.Ex_ICMP_x64.dll b/PB.Ex_ICMP/PB.Ex_ICMP_x64.dll new file mode 100644 index 0000000000000000000000000000000000000000..544a1752aca2db71d4bce34efaff53d60e425e43 GIT binary patch literal 7168 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 tJdsl#5ig?>|H@7z{7wNq_+P+