Exemplo n.º 1
0
		internal virtual bool Update(MulticastIPAddressInformation item)
		{
			_hasChanged = false;
			IsDnsEligible = item.IsDnsEligible;
			IsTransient = item.IsTransient;
			PrefixOrigin = item.PrefixOrigin;
			SuffixOrigin = item.SuffixOrigin;
			var old = _hasChanged;

			PreferredLifetime = DateTime.Now.AddSeconds(item.AddressPreferredLifetime);
			ValidLifetime = DateTime.Now.AddSeconds(item.AddressValidLifetime);
			DhcpLeaseLifetime = DateTime.Now.AddSeconds(item.DhcpLeaseLifetime);
			_hasChanged = old;
			return _hasChanged;
		}
        internal SystemUnicastIPAddressInformation(IpAdapterUnicastAddress adapterAddress) {
            IPAddress ipAddress = adapterAddress.address.MarshalIPAddress();
            this.innerInfo = new SystemIPAddressInformation(ipAddress, adapterAddress.flags);
            this.prefixOrigin = adapterAddress.prefixOrigin;
            this.suffixOrigin = adapterAddress.suffixOrigin;
            this.dadState = adapterAddress.dadState;
            this.validLifetime = adapterAddress.validLifetime;
            this.preferredLifetime = adapterAddress.preferredLifetime;
            this.dhcpLeaseLifetime = adapterAddress.leaseLifetime;

            this.prefixLength = adapterAddress.prefixLength;

            // IPv6 returns 0.0.0.0 for consistancy with XP
            if (ipAddress.AddressFamily == AddressFamily.InterNetwork) {
                ipv4Mask = PrefixLengthToSubnetMask(prefixLength, ipAddress.AddressFamily);
            }
        }
        internal SystemUnicastIPAddressInformation(Interop.IpHlpApi.IpAdapterUnicastAddress adapterAddress)
        {
            IPAddress ipAddress = adapterAddress.address.MarshalIPAddress();
            _innerInfo = new SystemIPAddressInformation(ipAddress, adapterAddress.flags);
            _prefixOrigin = adapterAddress.prefixOrigin;
            _suffixOrigin = adapterAddress.suffixOrigin;
            _dadState = adapterAddress.dadState;
            _validLifetime = adapterAddress.validLifetime;
            _preferredLifetime = adapterAddress.preferredLifetime;
            _dhcpLeaseLifetime = adapterAddress.leaseLifetime;

            _prefixLength = adapterAddress.prefixLength;

            // IPv6 returns 0.0.0.0 for consistency with down-level platforms.
            if (ipAddress.AddressFamily == AddressFamily.InterNetwork)
            {
                _ipv4Mask = PrefixLengthToSubnetMask(_prefixLength, ipAddress.AddressFamily);
            }
        }
        internal SystemUnicastIPAddressInformation(Interop.IpHlpApi.IpAdapterUnicastAddress adapterAddress)
        {
            IPAddress ipAddress = adapterAddress.address.MarshalIPAddress();

            _innerInfo         = new SystemIPAddressInformation(ipAddress, adapterAddress.flags);
            _prefixOrigin      = adapterAddress.prefixOrigin;
            _suffixOrigin      = adapterAddress.suffixOrigin;
            _dadState          = adapterAddress.dadState;
            _validLifetime     = adapterAddress.validLifetime;
            _preferredLifetime = adapterAddress.preferredLifetime;
            _dhcpLeaseLifetime = adapterAddress.leaseLifetime;

            _prefixLength = adapterAddress.prefixLength;

            // IPv6 returns 0.0.0.0 for consistency with down-level platforms.
            if (ipAddress.AddressFamily == AddressFamily.InterNetwork)
            {
                _ipv4Mask = PrefixLengthToSubnetMask(_prefixLength, ipAddress.AddressFamily);
            }
        }
        internal SystemUnicastIPAddressInformation(IpAdapterUnicastAddress adapterAddress)
        {
            IPAddress ipAddress = adapterAddress.address.MarshalIPAddress();

            this.innerInfo         = new SystemIPAddressInformation(ipAddress, adapterAddress.flags);
            this.prefixOrigin      = adapterAddress.prefixOrigin;
            this.suffixOrigin      = adapterAddress.suffixOrigin;
            this.dadState          = adapterAddress.dadState;
            this.validLifetime     = adapterAddress.validLifetime;
            this.preferredLifetime = adapterAddress.preferredLifetime;
            this.dhcpLeaseLifetime = adapterAddress.leaseLifetime;

            this.prefixLength = adapterAddress.prefixLength;

            // IPv6 returns 0.0.0.0 for consistancy with XP
            if (ipAddress.AddressFamily == AddressFamily.InterNetwork)
            {
                ipv4Mask = PrefixLengthToSubnetMask(prefixLength, ipAddress.AddressFamily);
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// Verifica si una dirrecion IPv6 es de cierto tipo basado en su sufijo.
        /// </summary>
        /// <param name="IPv6Address">La dirrecion IPv6 que se va a validar.</param>
        /// <param name="Tipo">El tipo de dirrecion que se espera es. </param>
        /// <returns></returns>
        public bool getOrigingIPv6Suffix(string IPv6Address, SuffixOrigin Tipo)
        {
            foreach (UnicastIPAddressInformation Dirres in niInterfaz.GetIPProperties().UnicastAddresses)
            {
                //ya que el LB que obtiene las dirreciones es una copia integra, sabemos que este
                //metodo es seguro, opcionalmente podriamos buscar un substring en vez de uno 100%
                //identico.
                if (  (IPv6Address.Equals( Dirres.Address.ToString() )) &&  ( Dirres.SuffixOrigin == Tipo) )
                   return true;
            }

            return false;
        }