├── 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
people, Please consider leaving a star :)
5 |
6 |
7 | # Preview
8 | Quick Version
9 |
10 | 
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
--------------------------------------------------------------------------------