ClioSport.net

Register a free account today to become a member!
Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

  • When you purchase through links on our site, we may earn an affiliate commission. Read more here.

Network Analysis App



sn00p

ClioSport Club Member
  A blue one.
I've been working on a project since the first lockdown, it keeps me occupied and my mind off pain in the early hours of the morning.

It's an open-source cross-platform traceroute/ping analysis tool, it's still far from complete, but it's usable and I've created binaries for macOS, Linux and Windows.

I've been working on the website which is now very basic but functional (although probably looks terrible in responsive modes as I haven't optimised those yet) and I'm working on the documentation for it as well.

The website is https://www.pingnoo.com and the source code is available at https://github.com/nedrysoft/pingnoo

It's all work in progress, but it's getting there slowly.
 

Gally

Formerly Mashed up egg in a cup
ClioSport Club Member
Nice! Good luck with it dude! Love networking stuff.
 

sn00p

ClioSport Club Member
  A blue one.
Cheers guys. Honestly, this keeps me sane - I spend most of the night awake feeling like crap/in pain/vomiting and powering on through with morphine & coding until the pain subsides and I get to sleep.

I wanted to get the website up and initial binaries up as well, just so that I can start getting links out there. I've got a few things to sort in the current version, mainly things like the really useful host masking feature, it allows you to set regular expressions for the host or IP redaction, so you can just hit print or take a screenshot and not have to remember to hide hostnames or IP addresses.

Currently, it uses ICMP packets to figure out RTT, but the ping engines themselves are completely replaceable to you can just drop in another one and select it in the interface. Under Linux, you cannot create RAW sockets without having admin rights, as the software requires admin rights you have to run the application as root. However, last week I added a ping engine for Linux which spawns the ping binary (which has setcap on it) which can run as a normal user, so you can now use it on Linux without having to have admin rights. I am going to add another option for Linux which is to use a service binary which is run as root which the application then talks to (from a non-root user) to send the pings, that's the best solution for Linux.

I'm happy to accept any ideas, what you think would be cool/useful or any ideas/criticisms on how it works, or for the website or the documentation.

In terms of code, there's quite a lot in it already, I've tried to document it as much as possible, so every header has doxygen comments in and whenever there's something that seems odd or confusing in the code, there are comments there to tell people exactly what is going on and why. I'm hosting the documentation on readthedocs, but I need to figure out a decent was of getting the code documentation up, I tested with breathe but there are issues with it because the application is written using the Qt libraries.
 

sn00p

ClioSport Club Member
  A blue one.
The Windows version was accidentally built against debug libraries and was missing a DLL. I've rebuilt that windows release and replaced the installer file so it now runs correctly, although it's missing OpenSSL DLL's so geo-IP lookups are disabled on the Windows version.

I'm also going to upload a "portable" version for windows, a zip file that contains the software + all DLL's so that it can be run directly from a memory stick without needing to be installed.
 

sn00p

ClioSport Club Member
  A blue one.
I've done loads more work on the website in terms of getting both the blog and documents section up and working, the documents was a b**ch as I couldn't find a way of theming the plugin and retaining the layout on a couple of pages, so I ended up trawling through the plugins source code and putting together a new shortcode which allows me to display their documents page with the main site theme. Slight issue in that I can't update the plugin without modifying it again after it's installed, but I've asked the developers of it how I achieve the same look using the standard shortcodes rather than with my kludge.

I've had a few people create some modifications to the code as well, so I'm pretty pleased about that.

I also pushed some new binaries about a week ago, and I plan to push some more tomorrow after I've added a few little feature completions.

I have my CI system back up and running which helps with producing deployable images at the click on a button, saves a lot of faffing. I'm also just adding travis support so that the build state of the code can be displayed on the github page.
 
  • Like
Reactions: Gus

Greeny.

ClioSport Club Member
  440i + 182
Didn’t see your original post but will have a play about with this on Monday
 

sn00p

ClioSport Club Member
  A blue one.
Didn’t see your original post but will have a play about with this on Monday

Which platform? (Windows, Linux, macOS?)

I'll build some new binaries and post a direct link to them here rather than pushing them to Github, there are a few outstanding things I want to do before I publish new binaries there.
 

Greeny.

ClioSport Club Member
  440i + 182
Which platform? (Windows, Linux, macOS?)

I'll build some new binaries and post a direct link to them here rather than pushing them to Github, there are a few outstanding things I want to do before I publish new binaries there.

Windows initially so I can see what it’s all about :)
 

sn00p

ClioSport Club Member
  A blue one.
Windows initially so I can see what it’s all about :)

I just built new binaries, you can download them from here, there's Windows (Installer), Linux (AppImage) and macOS (DMG).


Bear in mind, it's currently a work in progress, it is fully usable though.

You can't currently change the latency values in the settings page, I haven't got around to doing that as it's a 2-minute job and I've been concentrating on bigger things.

You can't save the analysis or produce and output file (pdf etc), so you're limited to screengrabs at the moment.

I'm really selling this eh? lol

I've concentrated thus far on the core of the application but am reaching a point where I have a solid foundation to build on. Things like the website and setting up continuous integration have sucked a bit of time this past week, but earlier today in-between feeling sick and being in pain I managed to hook up the windows & Linux settings dialog properly, macOS was already working as macOS preference windows work differently to how they do in windows and Linux generally.

Edit:

Both macOS and Windows binaries are signed as well, windows will probably complain that "not many people have downloaded this file" regardless of whether it's signed or not, it's a dumb warning to put up.
 
  • Like
Reactions: Gus

sn00p

ClioSport Club Member
  A blue one.
I'm also grateful for any Feedback (Constructive or not), Ideas, Suggestions, Death Threats, Nudes etc.
 

sn00p

ClioSport Club Member
  A blue one.
It'll be interesting to know if the installer works for you. Somebody has reported it didn't work (although the link I gave yesterday has newer builds) but I spun up a clean WIndows 10 x86_64 VM and installed it and it worked fine. (Well, apart from windows defender blocking the network access)
 

Greeny.

ClioSport Club Member
  440i + 182
It'll be interesting to know if the installer works for you. Somebody has reported it didn't work (although the link I gave yesterday has newer builds) but I spun up a clean WIndows 10 x86_64 VM and installed it and it worked fine. (Well, apart from windows defender blocking the network access)

Yup installed fine!
 

sn00p

ClioSport Club Member
  A blue one.
Yup installed fine!
I managed to track down the bug (I think) that he was mentioning, I still don't entirely know why it was crashing for him. I suspect he had some Qt binaries in his path somewhere that were for a different toolchain which caused it to crash on startup because I forgot to include a couple of DLL's, they're now included in the installer although I haven't updated the GitHub releases yet, I want to finish adding the favourites section as it's the last bit of UI that's in the code that doesn't yet do anything.

I've also made a slight tweak to the UI, invalid hops now extend into the latency graph, I personally think it looks pretty cool like this.

1614197736380.png
 

Attachments

  • 1614197157258.png
    1614197157258.png
    498.3 KB · Views: 53
Last edited:

sn00p

ClioSport Club Member
  A blue one.
Just building a new version after pushing a load of code to GitHub. Now has the favourites system implemented (you can click on the favourites item in the ribbon).

Everything that was previously a placeholder in the UI is now implemented, I need to do a little refactoring of the project to move the 3rd party libraries into a different folder, but now I plan to implement the jitter graphs and provide a means of outputting to PDF.

I won a $200 grant for my work on this, was pretty chuffed! I was really surprised that I got it, not such, but better than a kick in the balls.
 

sn00p

ClioSport Club Member
  A blue one.
Added the jitter plots. I'm now considering saving/loading of data along with outputs (PDF, PNG etc). Data saving will most likely be to a SQLite database.

1615945497880.png
 

sn00p

ClioSport Club Member
  A blue one.
I like that, it's a nice GUI for MTR.

Thanks. I've spent a *lot* of time on the GUI, specifically tweaking how it looks per platform. I have a few things to fixup (a pixel here and there) on the windows build, but that's actually the last build that gets work done, macOS->Linux->Windows.

In my own development branch I have added a jitter graph, it's a plugin, so any other graph you care to mention could be added very easily.
 

sn00p

ClioSport Club Member
  A blue one.
Not been very well for the past couple of weeks, so anything I have done on this has been more behind the scenes than anything else.

- added Linux Arch package support. Following a user request for arch support, my deployment script now can create arch packages and the necessary files to update the package on the AUR. There's a bit more to do as I need to automate it more because the AUR is a bit of a pain in the backside, I have to host the source tarball somewhere (because git archive doesn't archive submodules, so the git source zip on GitHub can't be built directly without interaction) which means uploading it to my website.

- Linux versions now detect if the application is running using GTK, if it is then it attempts to discover if it's a dark or light theme and then adjusts appropriately. I'm working on adding support to force light or dark mode, but that's a little bit more complicated than using the OS theme.

- fixed a memory leak on Linux when using the ping command ping engine.

- created a small website (https://www.nedrysoft.com). The application already had it's own website, but I needed to host the tarball for arch so put it on nedrysoft.com, but then I had a website which said "nothing to see here" which wasn't great, so just knocked up a small website which provides links to github and pingnoo.com and silently hosts the tarball packages. It'll also host sparkle updates for the macOS version when I get around to sorting that.
 

sn00p

ClioSport Club Member
  A blue one.
I made some changes so that it builds for raspberry pi, the application works fine.

I have misplaced a Pi 4 though, so had to use a Pi 3 to compile, it only took 1h4 minutes. lol
 


Top