12,352,739 members (69,156 online)
alternative version

73.9K views
42 bookmarked
Posted

# NetCalculator

, 21 Jul 2005 CPOL
 Rate this:
A simple net calculator for use in networking math calculations

## Introduction

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".

## The Steps

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.)

1. Binary presentation of data
2. Bits and bytes
3. Base 10 number system
4. Base 2 number system
5. Converting decimal numbers to 8-bit binary numbers
6. Converting 8-bit binary numbers to decimal numbers
7. Four-octet dotted decimal representation of 32-bit binary numbers
9. Boolean or binary logic

## Network Math

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 `255.0.0.0`

`11111111111111110000000000000000` written in dotted decimal as `255.255.0.0`

A boolean `AND `of the IP address `10.34.23.134 `and the subnet mask `255.0.0.0` produces the network address of this host:

```00001010.00100010.00010111.10000110
11111111.00000000.00000000.00000000
00001010.00000000.00000000.00000000 ```

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:

1. Classes of network IP addresses
2. Introduction to and reason for subnetting
5. Subnetting Class A and B networks
6. Calculating the resident subnetwork through `AND`ing

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

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

1. Add, WhoIS, DNS, PING, TRACEROUTE, PortScan tabs
2. Fix bugs
3. Copy to clipboard
4. Whatever comes up...

## Conclusion

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).

## History

• 21st July, 2005: Initial post

## Share

 Web Developer Ipsos Mori United Kingdom
Now I am a Full stack web developer at Ipsos Mori, dealing with everything web related.

I was a 22 years old student at Computer Science and Mathematics in Romania, Brasov. My first touch with a computer was in 1985 when my father bought a HC80 computer from some guy. Since then computers and programming is my true passion and desire

## You may also be interested in...

 First PrevNext
 how can i find maximum number of host? Hoàng Thăng Võ1-Mar-16 5:01 Hoàng Thăng Võ 1-Mar-16 5:01
 Very good code Mrlooper4-Nov-14 2:27 Mrlooper 4-Nov-14 2:27
 Great code JDougherty8-Oct-12 7:53 JDougherty 8-Oct-12 7:53
 VB 8.0 to VB 10.0 Marc Christ29-Aug-12 5:19 Marc Christ 29-Aug-12 5:19
 Re: VB 8.0 to VB 10.0 Micu Radu29-Aug-13 3:50 Micu Radu 29-Aug-13 3:50
 Very nice! Newrookie21-Jan-10 13:21 Newrookie 21-Jan-10 13:21
 Great Code GRRemlin19-Jan-09 10:48 GRRemlin 19-Jan-09 10:48