Pinging.net – a new quick way to monitor your internet connection

What do you do if you wonder if your internet connection is working? I built Pinging.net to be a fast and convenient way to monitor your internet connection.

How does pinging.net work?

pinging.net

Visiting Pinging will automatically run a few tests. Firstly, caching for the site is disabled so when the page loads you have a good indication that your internet is working. The site then does a DNS and HTTP POST test, these are repeated every 30 seconds. It also starts sending “Web Pings”.

What are web pings?

A ping is sending a single packet and waiting for a single response. This is normally done using ICMP ping packets but since a website can’t send actual ICMP ping packets, I had to make do with the best I can, UDP packets.

The only way I know of to send/receive UDP as a website is through WebRTC so that is what the site does. By using UDP we avoid TCP retries so we can see and monitor packet loss and get more accurate round trip latency metrics.

So Pinging sends a web ping every second and graphs the latency of the ping in a custom built chart and dropped packets show up as red squares. The graph view makes certain kinds of periodic issues a lot more apparent.

Pinging is DNS load balanced using Cloudflare to route people to the closest server. I currently have 3 virtual servers running and will add more as traffic demands. Cloudflare will also remove origin servers that have failed. I currently have pinging running in two clouds (Google Compute and Vultr) so it should be pretty high availability.

Pinging.net – a convenient and fast alternative

So back to the original question, what do you do when you wonder if your internet connection is working? I used to mostly use example(.com) since it was fast and always up. I would then pull up a terminal and do a combination of pings to various IP addresses or hostnames. Pinging is a convenient and fast alternative. But seriously let me know what you do when you are testing your internet? I would love to hear any feedback too. Thanks!

The frontend is written in TypeScript and the backend is written in Rust. It is all open source and available on GitHub at benhansenslc/pinging.

Tags: ,

Comments

  1. Thanks for sharing. I like this. Love the visuals.

    Any chance for a command-line version that functions the same; powered by Pinging?

  2. I’ve been using ping.pe for years. Enter my IP or any IP/website.

    Thanks for this, bookmarked!

  3. That’s pretty cool. I agree with @hydn about the visuals.

  4. Thanks everyone!

    @hydn I have thought a bit about a CLI. Without the restrictions of the browser there is even more you could do. For example the CLI could attempt to determine the boundary between your internet and intranet (i.e. your router) and send actual ping packets to both your router and a host on the internet and show any packet loss differences (which could help people determine WiFi vs ISP issues).

    Right now I am going to focus on the website. There are still some additional features I want to add and I like how easy it is for non-technical users and low friction it is for technical users. The first users were my family members who aren’t technical or use terminal apps. I’ll keep thinking about a CLI. If anyone is interested in building one, I am happy to collaborate too.

  5. Cool interface, what about proxy support like SelekTor or Squid does it show those too?

Join the discussion - post a comment.

2 more replies

Participants