├── App.config ├── Pinger.csproj ├── Pinger.csproj.user ├── Program.cs ├── Properties └── AssemblyInfo.cs ├── README.md ├── bin ├── Debug │ └── Pinger.exe └── Release │ └── Pinger.exe └── obj ├── Debug ├── Pinger.exe └── Pinger.pdb └── Release └── Pinger.exe /App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Pinger.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {434EA5CF-16D4-47B2-9AB9-DC8F39704739} 8 | Exe 9 | Pinger 10 | Pinger 11 | v4.7.2 12 | 512 13 | true 14 | true 15 | publish\ 16 | true 17 | Disk 18 | false 19 | Foreground 20 | 7 21 | Days 22 | false 23 | false 24 | true 25 | 0 26 | 1.0.0.%2a 27 | false 28 | false 29 | true 30 | 31 | 32 | AnyCPU 33 | true 34 | full 35 | false 36 | bin\Debug\ 37 | DEBUG;TRACE 38 | prompt 39 | 4 40 | true 41 | 42 | 43 | AnyCPU 44 | pdbonly 45 | false 46 | bin\Release\ 47 | TRACE 48 | prompt 49 | 4 50 | true 51 | 52 | 53 | ConsoleApp2.Program 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | False 75 | Microsoft .NET Framework 4.7.2 %28x86 and x64%29 76 | true 77 | 78 | 79 | False 80 | .NET Framework 3.5 SP1 81 | false 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /Pinger.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | publish\ 5 | 6 | 7 | 8 | 9 | 10 | en-US 11 | false 12 | 13 | -------------------------------------------------------------------------------- /Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Net.NetworkInformation; 6 | using System.Text; 7 | using System.Threading; 8 | using System.Threading.Tasks; 9 | 10 | 11 | 12 | namespace ConsoleApp2 13 | { 14 | internal class Program 15 | { 16 | 17 | 18 | public static void Log(string logMessage, TextWriter w) 19 | { 20 | w.Write($"{logMessage} at: "); 21 | w.Write($"{DateTime.Now.ToLongTimeString()} {DateTime.Now.ToLongDateString()}"); 22 | w.WriteLine(); 23 | } 24 | 25 | static void Main(string[] args) 26 | { 27 | int Timeouts = 0; 28 | 29 | new Thread(() => 30 | { 31 | 32 | var s = " "; // 8 spaces for the titles spacing, looks very messy but who cares. 33 | 34 | Thread.CurrentThread.IsBackground = true; 35 | for (int i = 0; i < int.MaxValue; i++) 36 | //{ 37 | // Console.Title = $"Rapid IP Pinger | Time open : {i} seconds"; 38 | // Thread.Sleep(1000); 39 | //} 40 | { 41 | var random = new Random(); 42 | var randomNumber = random.Next(1, 5); 43 | 44 | if (randomNumber == 3) 45 | { 46 | Console.Title = "Hey bb "+s+" " +s+s+s+s+s+s+s+s+s+s+s+s+$" Time open: {i} seconds"+s+"|"+s+$"Total Timeouts: {Timeouts}"; 47 | Thread.Sleep(500); 48 | Console.Title = "Hey bb "+s+" "+s+s+s+s+s+s+s+s+s+s+s+s+$" Time open: {i+1} seconds"+s+"|"+s+$"Total Timeouts: {Timeouts}"; 49 | Thread.Sleep(500); 50 | } 51 | else if (randomNumber == 2) 52 | { 53 | Console.Title = "Rapid IP / Host Pinger "+s+" "+s+s+s+s+s+s+s+s+s+$"Time open: {i} seconds"+s+"|"+s+$"Total Timeouts: {Timeouts}"; 54 | Thread.Sleep(500); 55 | Console.Title = "Rapid IP / Host Pinger "+s+" "+s+s+s+s+s+s+s+s+s+$"Time open: {i+1} seconds"+s+"|"+s+$"Total Timeouts: {Timeouts}"; 56 | Thread.Sleep(500); 57 | } 58 | else if (randomNumber == 1) 59 | { 60 | Console.Title = "Consider Starring The Repo? github.com/0vm/Pinger "+s+" "+s+s+$" Time open: {i} seconds"+s+"|"+s+$"Total Timeouts: {Timeouts}"; 61 | Thread.Sleep(500); 62 | Console.Title = "Consider Starring The Repo? github.com/0vm/Pinger "+s+" "+s+s+$" Time open: {i+1} seconds"+s+"|"+s+$"Total Timeouts: {Timeouts}"; 63 | Thread.Sleep(500); 64 | } 65 | else if (randomNumber == 4) 66 | { 67 | Console.Title = "Pro Tip: Click On The Console To Pause The Pinger " + s + " " + s + s + $" Time open: {i} seconds" + s + "|" + s + $"Total Timeouts: {Timeouts}"; 68 | Thread.Sleep(500); 69 | Console.Title = "Pro Tip: Click On The Console To Pause The Pinger " + s + " " + s + s + $" Time open: {i + 1} seconds" + s + "|" + s + $"Total Timeouts: {Timeouts}"; 70 | Thread.Sleep(500); 71 | } 72 | } 73 | }).Start(); 74 | 75 | int? log = 0; 76 | 77 | Console.Write("Want to log the timeouts to a file? (y/n): "); 78 | ConsoleKey response = Console.ReadKey(false).Key; 79 | Console.WriteLine(); 80 | if (response == ConsoleKey.Y) 81 | { 82 | log = 1; 83 | } 84 | else 85 | { 86 | log = 0; 87 | } 88 | Console.Clear(); 89 | Console.Write("Enter Host: "); 90 | string option = Console.ReadLine(); 91 | 92 | 93 | 94 | new Thread(() => 95 | { 96 | Thread.CurrentThread.IsBackground = true; 97 | while (true) 98 | { 99 | try 100 | { 101 | int timeout = 1500; 102 | Ping ping = new Ping(); 103 | PingReply pingreply = ping.Send(option, timeout); 104 | if (pingreply.Status == IPStatus.Success) 105 | { 106 | Console.ForegroundColor = ConsoleColor.Green; 107 | Console.Write("Status: {0}", pingreply.Status); 108 | Console.ForegroundColor = ConsoleColor.White; Console.Write(" | "); 109 | Console.ForegroundColor = ConsoleColor.DarkCyan; 110 | Console.Write("IP: {0}", pingreply.Address); 111 | Console.ForegroundColor = ConsoleColor.White; Console.Write(" | "); 112 | Console.ForegroundColor = ConsoleColor.Blue; 113 | Console.Write("Latency: {0}ms", pingreply.RoundtripTime); 114 | Console.WriteLine(); 115 | }else 116 | { 117 | Console.ForegroundColor = ConsoleColor.Red; 118 | Console.WriteLine(option + " Timed Out"); 119 | 120 | if (log == 1) 121 | { 122 | using (StreamWriter w = File.AppendText("log.txt")) 123 | { 124 | Log($"{option} Timed Out", w); 125 | } 126 | } 127 | Timeouts++; 128 | continue; 129 | } 130 | } 131 | catch (PingException ex) 132 | { 133 | Console.WriteLine(ex); 134 | } 135 | } 136 | }).Start(); 137 | Thread.Sleep(-1); 138 | } 139 | } 140 | } 141 | -------------------------------------------------------------------------------- /Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Rapid IP Pinger")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("IP Pinger")] 13 | [assembly: AssemblyCopyright("Copyright © 0vm 2022")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("434EA5CF-16D4-47B2-9AB9-DC8F39704739")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Pinger 2 | A Fast IP Pinger, An Open source IP Pinger that can log downtime, can ping URL's, IPv4 and IPv6. 3 | If this gets enough attention i'll make a linux version. 4 | So far this has helped 0vm-pingerview people, Please consider leaving a star :) 5 | 6 | 7 | # Preview 8 | Quick Version 9 | 10 | ![quic](https://user-images.githubusercontent.com/79897291/172980036-7e618152-c791-427e-80a0-c4d339c0a1b5.gif) 11 | 12 | Extended Version 13 | 14 | Full Video 15 | 16 | (I do not condone any actions of foreign governments, the wallpaper is an old meme) 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | # Features 26 | * Pings the host right after it recieves a response, rapidly pinging the host, this cannot be used to dos as that is a obsolete method. 27 | * Ability to log each timeout with a timestamp right beside it making a new line per timeout 28 | * Now shows when it times out (original didn't) 29 | * Title Loops Through Different Texts, Has a built in time counter, to show how long you have been pinging / had the application open. 30 | * Shows the timeouts on the title bar, for easy access and for overnight monitoring. 31 | * Ability to ping: IPv4, URL's and IPv6 (if your ISP gives you an address). 32 | * Timeout is set to 1.5 seconds just to remove the possibility of a false positive timeout, though it may still occur 33 | 34 | 35 | 36 | # Uses To This 37 | * Can be used as a downtime checker for something that is not very important. (For something more important I would recommend having a cronjob on your server making a request every minute to check if it is down and to run a pcap to see if it a DDoS attack or some sort of exploit) 38 | * Can show timestamps of when your internet goes down incase your ISP requires evidence. 39 | * Can show when the IP you are pinging goes down or spikes to see if your friend is actually lagging. 40 | * Honestly a lot more, I just cant name them its currently 1:16am and i feel like dying inside. 41 | 42 | 43 | 44 | # Copyright 45 | I request you do not sell this or mark it as your own, please leave credit to myself and ZF9. 46 | (If you manage to sell this, good for you 💀) 47 | 48 | 49 | 50 | # Original 51 | The original is by a friend of mine, quite simple with no logging etc. 52 | https://github.com/zf9/Ping-Thing 53 | 54 | 55 | 56 | # Tags To Help People Find This 57 | Rapid IP Pinger, IP Pinger, Fast IP Pinger, Server Downtime Logger, Downtime Logger, IP Logger, IP Pinger With Timestamps, Connection Timed Out. 58 | 59 | 60 | -------------------------------------------------------------------------------- /bin/Debug/Pinger.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0vm/Pinger/f9a39c22dba2bc2c61c7c27bb1a922667d083c6c/bin/Debug/Pinger.exe -------------------------------------------------------------------------------- /bin/Release/Pinger.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0vm/Pinger/f9a39c22dba2bc2c61c7c27bb1a922667d083c6c/bin/Release/Pinger.exe -------------------------------------------------------------------------------- /obj/Debug/Pinger.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0vm/Pinger/f9a39c22dba2bc2c61c7c27bb1a922667d083c6c/obj/Debug/Pinger.exe -------------------------------------------------------------------------------- /obj/Debug/Pinger.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0vm/Pinger/f9a39c22dba2bc2c61c7c27bb1a922667d083c6c/obj/Debug/Pinger.pdb -------------------------------------------------------------------------------- /obj/Release/Pinger.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0vm/Pinger/f9a39c22dba2bc2c61c7c27bb1a922667d083c6c/obj/Release/Pinger.exe --------------------------------------------------------------------------------