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); } }