예제 #1
0
        private void setnetmask()
        {
            byte octet = 0;
            byte value = 128;

            byte[] netmask = new byte[4];
            for (int i = 0; i <= 32; i++)
            {
                if (i % 8 == 0 && i > 0)
                {
                    netmask[(i / 8) - 1] = octet;
                    octet = 0;
                    value = 128;
                }
                if (i < cidr)
                {
                    octet += value;
                }

                value /= 2;
            }

            this.netmask = new InternetProtocolAddress(netmask[0], netmask[1], netmask[2], netmask[3]);
            rnetmask     = new InternetProtocolAddress(this.netmask.IPAddress ^ UInt32.MaxValue);
            setWildcard(netmask);
        }
예제 #2
0
 public IPCalculation(InternetProtocolAddress ip, byte cidr)
 {
     this.ip   = ip;
     this.cidr = cidr;
     setnetmask();
     setHostnumber();
 }
예제 #3
0
        private void setWildcard(byte[] wildcard)
        {
            for (int i = 0; i < wildcard.Length; i++)
            {
                wildcard[i] = (byte)(255 - wildcard[i]);
            }

            this.wildcard = new InternetProtocolAddress(wildcard[0], wildcard[1], wildcard[2], wildcard[3]);
        }
예제 #4
0
 public InternetProtocolAddress getBroadcastAddress()
 {
     if (firstAddress == null)
     {
         getfirstAddress();
     }
     if (networkaddress == null)
     {
         getNetworkAddress();
     }
     broadcastAddress = new InternetProtocolAddress((networkaddress.IPAddress ^ rnetmask.IPAddress));
     return(broadcastAddress);
 }
예제 #5
0
 public InternetProtocolAddress getLastAddress()
 {
     if (firstAddress == null)
     {
         getfirstAddress();
     }
     if (networkaddress == null)
     {
         getNetworkAddress();
     }
     lastAddress = new InternetProtocolAddress((networkaddress.IPAddress ^ rnetmask.IPAddress) - 1);
     return(lastAddress);
 }
예제 #6
0
 public InternetProtocolAddress getNetworkAddress()
 {
     networkaddress = new InternetProtocolAddress(ip.IPAddress & netmask.IPAddress);
     return(networkaddress);
 }
예제 #7
0
 public InternetProtocolAddress getfirstAddress()
 {
     firstAddress   = new InternetProtocolAddress((ip.IPAddress & netmask.IPAddress) + 1);
     networkaddress = new InternetProtocolAddress(ip.IPAddress & netmask.IPAddress);
     return(firstAddress);
 }