A year ago, I started the CISCO CCNA course in my country, and the first module was about NetWorking Basics. The first lessons were about Networking, etc. until NetworkMath came with all these steps of calculating subnets, max number of hosts and so on. It is not hard after you get the hang of it, it is quite easy, but it takes lots of time to do the calculations so I have made a "calculator".
This is the main idea to do the calculations. (You really need to know all steps in order to be able to do something later.)
- Binary presentation of data
- Bits and bytes
- Base 10 number system
- Base 2 number system
- Converting decimal numbers to 8-bit binary numbers
- Converting 8-bit binary numbers to decimal numbers
- Four-octet dotted decimal representation of 32-bit binary numbers
- Boolean or binary logic
- IP addresses and network masks
So let's skip steps 1-9 because you all need to know what they are about and it is not appropriate to discuss them here.
Now let's take a closer look at step 10 - IP addresses and network masks.
When IP addresses are assigned to computers, some of the bits on the left side of the 32-bit IP number represent a network. The number of bits designated depends on the address class. The bits left over in the 32-bit IP address identify a particular computer on the network. A computer is referred to as a host. The IP address of a computer consists of a network and a host part.
To inform a computer how the 32-bit IP address has been split, a second 32-bit number called a subnetwork mask is used. This mask is a guide that determines how the IP address is interpreted. It indicates how many of the bits are used to identify the network of the computer. The subnetwork mask sequentially fills in the 1s from the left side of the mask. A subnet mask will always be all 1s until the network address is identified and then it will be all 0s to the end of the mask. The bits in the subnet mask that are 0 identify the computer or host.
Some examples of subnet masks are as follows:
11111111000000000000000000000000 written in dotted decimal as
11111111111111110000000000000000 written in dotted decimal as
AND of the IP address
10.34.23.134 and the subnet mask
255.0.0.0 produces the network address of this host:
The dotted decimal conversion is
10.0.0.0 which is the network portion of the IP address when the
255.0.0.0 mask is used.
This is the main idea very briefly, for a more complex view we learned about.
The mechanics of Subnetting (with the associated steps) are as follows:
- Classes of network IP addresses
- Introduction to and reason for subnetting
- Establishing the subnet mask address
- Applying the subnet mask
- Subnetting Class A and B networks
- Calculating the resident subnetwork through
Now I will not explain the whole process because it is very long and... boring and... Now if you want this explained in detail with examples and pictures, you can let me know and I will update the article.
The project is created in .NET 2003 but can easily be ported in 2005. The screenshot is given above, so it is not a big thing.
I first made this project in Java. After searching the Internet for something familiar, I have came up with nothing, until a friend of mine gave me a link to a JNetTool made by Arthur Ventruba. I downloaded the app and added more features, some bugs were fixed and lots more.
So this .NET app is a port of that tool.
The most important class in the project is IPTool.cs. In there, we have all the "tools" that we need to do the calculations.
I have included the source and the binaries.
To Do List
- Add, WhoIS, DNS, PING, TRACEROUTE, PortScan tabs
- Fix bugs
- Copy to clipboard
- Whatever comes up...
English is not my native language, so please excuse me for all the mistakes that I have made...
This is my first article here, so it is not perfect; you are free to make suggestions, remarks, etc.
If you need some information or have any questions, please email me...
I hope to write more and better articles here (I have made lots of useless:) tools using .NET that I want to share).
- 21st July, 2005: Initial post