How To Make A IP Analyzer In VB.NET

ultimate programming

This is a good one but its a in console but i hope you will like it and it has not alot code . the program works like when you enter a IP address and press enter key in your keyboard then you will see the class of the ip address and subnet mask and IP binary and network address and at last broadcast address so i hope you will like the features and dont forget you can also make alot features for this if you made anything dont forget to comment it ok lets begin making it now make a console project and name it and when it loading successful then add this code down


Imports System.Net
Module Module1

    'Author : Mohamed Shimran
    'Blog : http://www.ultimateprogrammingtutorials.blogspot.com

    Sub Main()
        Console.Write("Insert IP Address : ")
        Dim IP As String = Console.ReadLine
        Console.WriteLine("")
        Dim IP_Array() As String = IP.Split(".")

        Dim First_Byte As Integer = IP_Array(0)
        Dim Bit_First_Byte As String = Convert.ToString(First_Byte, 2)
        Dim Bit_First_Byte_Padded As String = Bit_First_Byte.PadLeft(8, "0")

        If Bit_First_Byte_Padded.Substring(0, 1) = "0" Then
            class_X(IP_Array, "A", "11111111.00000000.00000000.00000000", "00000000.11111111.11111111.11111111")
        ElseIf Bit_First_Byte_Padded.Substring(0, 2) = "10" Then
            class_X(IP_Array, "B", "11111111.11111111.00000000.00000000", "00000000.00000000.11111111.11111111")
        ElseIf Bit_First_Byte_Padded.Substring(0, 2) = "11" Then
            class_X(IP_Array, "C", "11111111.11111111.11111111.00000000", "00000000.00000000.00000000.11111111")
        End If

        Console.ReadKey()
    End Sub

    Sub class_X(ByVal IP() As String, ByVal Classe As String, ByVal SubMask As String, ByVal SubMaskInv As String)
        Console.WriteLine("******************************************************")
        Console.WriteLine("Class: " & Classe)
        Console.WriteLine("")
        If Classe = "A" Then
            Console.WriteLine("Subnet Mask: 255.0.0.0")
        ElseIf Classe = "B" Then
            Console.WriteLine("Subnet Mask: 255.255.0.0")
        ElseIf Classe = "C" Then
            Console.WriteLine("Subnet Mask: 255.255.255.0")
        End If

        Console.WriteLine("")
        Dim Binary_IP As String = ""
        For i = 0 To IP.Length - 1
            Dim Byte_ As Integer = IP(i)
            Dim Bit As String = Convert.ToString(Byte_, 2)
            Dim Bit_Padded As String = Bit.PadLeft(8, "0")
            If Not i = IP.Length - 1 Then
                Binary_IP += Bit_Padded & "."
            Else
                Binary_IP += Bit_Padded
            End If
        Next
        Console.WriteLine("IP Binary: " & Binary_IP)
        Console.WriteLine("")

        Dim Subnet_Mask_Binary As String = SubMask
        Dim Mask_Array() As Char = Subnet_Mask_Binary.ToCharArray
        Dim IP_Array() As Char = Binary_IP.ToCharArray
        Dim Network_Address_Binary As String = ""
        For i = 0 To Mask_Array.Length - 1
            If IP_Array(i) = "1" And Mask_Array(i) = "1" Then
                Network_Address_Binary += "1"
            ElseIf IP_Array(i) = "." Then
                Network_Address_Binary += "."
            Else
                Network_Address_Binary += "0"
            End If
        Next
        Dim Network_Address As String = ""
        Dim Network_Array() As String = Network_Address_Binary.Split(".")
        For i = 0 To Network_Array.Length - 1
            Network_Address += Bin_To_Dec(Network_Array(i)) & "."
        Next
        Console.WriteLine("Network Address: " & Network_Address.Substring(0, Network_Address.Length - 1))
        Console.WriteLine("")

        Dim Subnet_Mask_Inverted As String = SubMaskInv
        Dim Mask_Inverted_Array() As Char = Subnet_Mask_Inverted.ToCharArray
        Dim Broadcast_Address_Binary As String = ""
        For i = 0 To Mask_Inverted_Array.Length - 1
            If IP_Array(i) = "0" And Mask_Inverted_Array(i) = "0" Then
                Broadcast_Address_Binary += "0"
            ElseIf IP_Array(i) = "." Then
                Broadcast_Address_Binary += "."
            Else
                Broadcast_Address_Binary += "1"
            End If
        Next
        Dim Broadcast_Address As String = ""
        Dim Broadcast_Array() As String = Broadcast_Address_Binary.Split(".")
        For i = 0 To Broadcast_Array.Length - 1
            Broadcast_Address += Bin_To_Dec(Broadcast_Array(i)) & "."
        Next
        Console.WriteLine("Broadcast Address: " & Broadcast_Address.Substring(0, Broadcast_Address.Length - 1))
        Console.WriteLine("******************************************************")
    End Sub

    Public Function Bin_To_Dec(ByVal Bin As String)
        Dim dec As Double = Nothing
        Dim length As Integer = Len(Bin)
        Dim temp As Integer = Nothing
        Dim x As Integer = Nothing
        For x = 1 To length
            temp = Val(Mid(Bin, length, 1))
            length = length - 1
            If temp <> "0" Then
                dec += (2 ^ (x - 1))
            End If
        Next
        Return dec
    End Function
End Module

now debug and try it

1 comments:

This code does not calculate the netmask, you only check the first Octet of the IP's Binary and then determine the class segment which okay. But When you print the NetMask you do not follow the CIDR pattern. You statically assign the NetMask which is not okay.

Reply

Post a Comment

Note: Only a member of this blog may post a comment.