Monday, August 29, 2011

JNetTool: A Handy Networking Tool

Overview
Sourceforge holds a wide array of open source projects and to my surprise I found a Java related project that dealt with networking.  The reason I chose the JNetTool was because I am currently learning the workings of TCP/IP and all of its intricacies.  The description for JNetTool is as follows, "A network tool with gui for whois, ping, traceroute, ns lookup (dig,dns), portscan, network calculator, visual net plan - written in java."  Indeed all of the components in JNetTool makes for a handy networker's 'pocket knife'.


I will demonstrate the features within JNetTool and show that this package satisfies the three prime directives.


1. The system successfully accomplishes a useful task.
The one component within JNetTool that I was very excited to see was the Net-Calc option.  Subnetting is somewhat a tedious task for me and having a subnet calculator makes life much easier.  The Net-Calc option has all your standard subnetting options such as network class/CIDR, subnet mask, number of hosts, network and broadcast address and IP range.  

Example of the Net-Calc tool in JNetTool

What JNetTool does to go above and beyond is the option to 'show next subnet with this number of hosts', which will iterate subnets with the designated number of wanted hosts.  The PortScan option offers a basic portscanning tool.  While it is not as robust as Nmap it does its job.  

Example of a port scan done on uhunix (selected ports for brevity)

2. An external user can successfully install and use the system.
JNetTool's documentation page, holds an up to date change log and links to relevant pages. Unfortunately the developer seems to be have an extensive documentation in German, which I am unable to understand.  However within the JAR file was several .txt files describing his project.  There were no problems downloading and installing JNetTool.  Since the project was packaged as a JAR, it ran as a applet when opening it.  The fact that I was able to run JNetTool on my first try is a good indicator of this system meeting the 2nd prime directive. 

3. An external developer can successfully understand and enhance the system. 
The source code for JNetTool is available on sourceforge and is well written as it is extensively commented.  Since there are several tools within JNetTool (whois, dns, ping, traceroute, etc...) the source code is somewhat large and would take time for me to fully read and understand how it works.  However this is a minor problem since the code is structured and commented well.  

Example of the source code for JNetTool (BrowserLauncher.java)

Overall I feel that running and examining JNetTool was a great way to get my feet wet in the realm in software engineering.  I would love to venture out and possibly create/enhance JNetTool in the future. I believe I'll find motivation in the great words of Captain Jean Luc-Picard... "make it so"

0 comments:

Post a Comment