public IPv4Address GetNetAddress() { if (netAddress == null) { byte[] addr = IpAddress.GetBytes(); byte[] maskBytes = MaskToBytes(Mask); byte[] result = new byte[4]; for (int a = 0; a < addr.Length; a++) { result[a] = (byte)(addr[a] & maskBytes[a]); } netAddress = new IPv4Address(new System.Net.IPAddress(result)); } return(netAddress); }
public SubnetMatchResult Match(IPv4Address otherIpv4Address) { byte[] srcIp = otherIpv4Address.GetBytes(); byte[] netaddr = GetNetAddress().GetBytes(); byte[] maskBytes = MaskToBytes(Mask); byte[] result = new byte[4]; for (int a = 0; a < srcIp.Length; a++) { result[a] = (byte)(srcIp[a] & maskBytes[a]); } return(new SubnetMatchResult(Helper.Equals(netaddr, result), this, otherIpv4Address)); }