/YalamovPing

A flexible and speedy custom implementation of the UNIX ping command with a CLI.

Primary LanguageC++MIT LicenseMIT

YalamovPing is a small ping command line interface for MacOS and Linux. This project was done to improve upon the ping command with flexibility, customization, and performance in mind.

Installation

Download the project.zip file and change directories into the project's directory, then into args-master. Type the following command into the terminal to install the args library:

sudo make install

After that go back up to the project's directory; to build the project, simply type into the command terminal

g++ ping.cpp -o ping

And you are good to go to use the Yalamov Ping!

Features

This ping CLI comes with a nice helpful OPTIONS menu that can be accessed by running the command sudo ./ping -h or sudo ./ping --help which shows all the available features:

ping help screen

Using Ping

To use the ping utility, make sure that you have a working network connection by being connected to WiFi or by Ethernet cable. Then enter the command to run ping and either a hostname or IP address as an argument. For example, both commands are valid:

sudo ./ping google.com
sudo ./ping 172.217.1.14

which will result in ping running until you hit "Control + C" on your keyboard to exit the ping utility:

ping outout

Features included:

In addition to Yalamov Ping showing you the Round Trip Time (RTT) and tracking lost packets, it also has:

  • -t: Time To Live (TTL): Allows you to set the time to live for an IP Address
  • --ipv6: IPv6 Support: Allows for IP version 6 support to allow for new IP addresses to be entered, accounting for the expanding need of new IP addresses and infrastructure to handle them
  • -i: Allows a user to set the interval time in seconds between sending each packet
  • -p: Allows a user to specify how many packets the want to send to the specified address

Ping can have example arguments as such:

  • sudo ./ping -t 20 vw.com
  • sudo ./ping --ipv6 y 2001:0db8:0000:0000:0000:ff00:0042:7879
  • sudo ./ping -t 50 -i 2 -p 3 lamborghini.com
  • sudo ./ping -i 3.14 reddit.com
  • sudo ./ping -p 2 news.ycombinator.com

Built With

Credits

I want to thank Taylor C. Richberger for developing the args library, the C++ language team, and the GitHub team.

License

MIT Ā© Amir Yalamov