DuplicateAddressDetectionState DuplicateAddressDetectionState DuplicateAddressDetectionState DuplicateAddressDetectionState Enum

Определение

Указывает текущее состояние IP-адреса.Specifies the current state of an IP address.

public enum class DuplicateAddressDetectionState
public enum DuplicateAddressDetectionState
type DuplicateAddressDetectionState = 
Public Enum DuplicateAddressDetectionState
Наследование
DuplicateAddressDetectionStateDuplicateAddressDetectionStateDuplicateAddressDetectionStateDuplicateAddressDetectionState

Поля

Deprecated Deprecated Deprecated Deprecated 3

Адрес действителен, но его срок аренды истекает и он не должен использоваться приложениями.The address is valid, but it is nearing its lease lifetime and should not be used by applications.

Duplicate Duplicate Duplicate Duplicate 2

Адрес не является уникальным.The address is not unique. Этот адрес не должен назначаться сетевому интерфейсу.This address should not be assigned to the network interface.

Invalid Invalid Invalid Invalid 0

Недопустимый адрес.The address is not valid. У недопустимого адреса истек срок действия и он больше не назначен интерфейсу. Приложения не должны отправлять данные на этот адрес.A nonvalid address is expired and no longer assigned to an interface; applications should not send data packets to it.

Preferred Preferred Preferred Preferred 4

Адрес действителен и может использоваться без ограничений.The address is valid and its use is unrestricted.

Tentative Tentative Tentative Tentative 1

Оценка процедуры обнаружения повторяющихся адресов не была успешно завершена.The duplicate address detection procedure's evaluation of the address has not completed successfully. Этот адрес не должен использоваться приложениями, потому что он еще недопустим и отправляемые на него пакеты удаляются.Applications should not use the address because it is not yet valid and packets sent to it are discarded.

Примеры

В следующем примере кода определяются сведения об адресе одноадресной рассылки.The following code example determines unicast address information.

void DisplayUnicastAddresses()
{
   Console::WriteLine( "Unicast Addresses" );
   array<NetworkInterface^>^adapters = NetworkInterface::GetAllNetworkInterfaces();
   System::Collections::IEnumerator^ myEnum17 = adapters->GetEnumerator();
   while ( myEnum17->MoveNext() )
   {
      NetworkInterface ^ adapter = safe_cast<NetworkInterface ^>(myEnum17->Current);
      IPInterfaceProperties ^ adapterProperties = adapter->GetIPProperties();
      UnicastIPAddressInformationCollection ^ uniCast = adapterProperties->UnicastAddresses;
      if ( uniCast->Count > 0 )
      {
         Console::WriteLine( adapter->Description );
         String^ lifeTimeFormat = "dddd, MMMM dd, yyyy  hh:mm:ss tt";
         System::Collections::IEnumerator^ myEnum18 = uniCast->GetEnumerator();
         while ( myEnum18->MoveNext() )
         {
            UnicastIPAddressInformation ^ uni = safe_cast<UnicastIPAddressInformation ^>(myEnum18->Current);
            DateTime when;
            Console::WriteLine( "  Unicast Address ......................... : {0}", 
               uni->Address );
            Console::WriteLine( "     Prefix Origin ........................ : {0}", 
               uni->PrefixOrigin );
            Console::WriteLine( "     Suffix Origin ........................ : {0}", 
               uni->SuffixOrigin );
            Console::WriteLine( "     Duplicate Address Detection .......... : {0}", 
               uni->DuplicateAddressDetectionState );
            
            // Format the lifetimes as Sunday, February 16, 2003 11:33:44 PM
            // if en-us is the current culture.
            // Calculate the date and time at the end of the lifetimes.    
            when = DateTime::UtcNow + TimeSpan::FromSeconds( (double)uni->AddressValidLifetime );
            when = when.ToLocalTime();
            Console::WriteLine( "     Valid Life Time ...................... : {0}", 
               when.ToString( lifeTimeFormat, System::Globalization::CultureInfo::CurrentCulture ) );
            when = DateTime::UtcNow + TimeSpan::FromSeconds( (double)uni->AddressPreferredLifetime );
            when = when.ToLocalTime();
            Console::WriteLine( "     Preferred life time .................. : {0}", 
               when.ToString( lifeTimeFormat, System::Globalization::CultureInfo::CurrentCulture ) );
            when = DateTime::UtcNow + TimeSpan::FromSeconds( (double)uni->DhcpLeaseLifetime );
            when = when.ToLocalTime();
            Console::WriteLine( "     DHCP Leased Life Time ................ : {0}", 
               when.ToString( lifeTimeFormat, System::Globalization::CultureInfo::CurrentCulture ) );
         }
         Console::WriteLine();
      }
   }
}
public static void DisplayUnicastAddresses()
{
    Console.WriteLine("Unicast Addresses");
    NetworkInterface[] adapters  = NetworkInterface.GetAllNetworkInterfaces();
    foreach (NetworkInterface adapter in adapters)
    {
        IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
        UnicastIPAddressInformationCollection uniCast = adapterProperties.UnicastAddresses;
        if (uniCast.Count >0)
        {
            Console.WriteLine(adapter.Description);
            string lifeTimeFormat = "dddd, MMMM dd, yyyy  hh:mm:ss tt";
            foreach (UnicastIPAddressInformation uni in uniCast)
            {
                DateTime when;
                
                Console.WriteLine("  Unicast Address ......................... : {0}", uni.Address);
                Console.WriteLine("     Prefix Origin ........................ : {0}", uni.PrefixOrigin);
                Console.WriteLine("     Suffix Origin ........................ : {0}", uni.SuffixOrigin);
                Console.WriteLine("     Duplicate Address Detection .......... : {0}", 
                    uni.DuplicateAddressDetectionState);
                    
                // Format the lifetimes as Sunday, February 16, 2003 11:33:44 PM
                // if en-us is the current culture.
                
                // Calculate the date and time at the end of the lifetimes.    
                when = DateTime.UtcNow + TimeSpan.FromSeconds(uni.AddressValidLifetime);
                when = when.ToLocalTime();    
                Console.WriteLine("     Valid Life Time ...................... : {0}", 
                    when.ToString(lifeTimeFormat,System.Globalization.CultureInfo.CurrentCulture)
                );
                when = DateTime.UtcNow + TimeSpan.FromSeconds(uni.AddressPreferredLifetime);   
                when = when.ToLocalTime();
                Console.WriteLine("     Preferred life time .................. : {0}", 
                    when.ToString(lifeTimeFormat,System.Globalization.CultureInfo.CurrentCulture)
                ); 
                
                when = DateTime.UtcNow + TimeSpan.FromSeconds(uni.DhcpLeaseLifetime);
                when = when.ToLocalTime(); 
                Console.WriteLine("     DHCP Leased Life Time ................ : {0}", 
                    when.ToString(lifeTimeFormat,System.Globalization.CultureInfo.CurrentCulture)
                );
            }
            Console.WriteLine();
        }
    }
}
Public Shared Sub DisplayUnicastAddresses() 

    Console.WriteLine("Unicast Addresses")
    Dim adapters As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces()
    Dim adapter As NetworkInterface
    For Each adapter In  adapters
        Dim adapterProperties As IPInterfaceProperties = adapter.GetIPProperties()
        Dim uniCast As UnicastIPAddressInformationCollection = adapterProperties.UnicastAddresses
        If uniCast.Count > 0 Then
            Console.WriteLine(adapter.Description)
            Dim lifeTimeFormat As String = "dddd, MMMM dd, yyyy  hh:mm:ss tt"
            Dim uni As UnicastIPAddressInformation
            For Each uni In  uniCast
                Dim [when] As DateTime
                
                Console.WriteLine("  Unicast Address ......................... : {0}", uni.Address)
                Console.WriteLine("     Prefix Origin ........................ : {0}", uni.PrefixOrigin)
                Console.WriteLine("     Suffix Origin ........................ : {0}", uni.SuffixOrigin)
                Console.WriteLine("     Duplicate Address Detection .......... : {0}", uni.DuplicateAddressDetectionState)
                
                ' Format the lifetimes as Sunday, February 16, 2003 11:33:44 PM
                ' if en-us is the current culture.
                ' Calculate the date and time at the end of the lifetimes.    
                [when] = DateTime.UtcNow + TimeSpan.FromSeconds(uni.AddressValidLifetime)
                [when] = [when].ToLocalTime()
                Console.WriteLine("     Valid Life Time ...................... : {0}", [when].ToString(lifeTimeFormat, System.Globalization.CultureInfo.CurrentCulture))
                [when] = DateTime.UtcNow + TimeSpan.FromSeconds(uni.AddressPreferredLifetime)
                [when] = [when].ToLocalTime()
                Console.WriteLine("     Preferred life time .................. : {0}", [when].ToString(lifeTimeFormat, System.Globalization.CultureInfo.CurrentCulture))
                
                [when] = DateTime.UtcNow + TimeSpan.FromSeconds(uni.DhcpLeaseLifetime)
                [when] = [when].ToLocalTime()
                Console.WriteLine("     DHCP Leased Life Time ................ : {0}", [when].ToString(lifeTimeFormat, System.Globalization.CultureInfo.CurrentCulture))
            Next uni
            Console.WriteLine()
        End If
    Next adapter

End Sub

Комментарии

Чтобы гарантировать, что все интерфейсы в сети имеют уникальный адрес, узел интерфейса несет ответственность за выполнение алгоритма "обнаружения повторяющихся адресов" на адресах одноадресной рассылки.To help ensure that all interfaces on a network have a unique address, the interface host is responsible for running a "duplicate address detection" algorithm on unicast addresses. Цель этого алгоритма — попытаться предотвратить неуникальные адреса в сети.The purpose of this algorithm is to attempt to prevent non-unique addresses on the network. Этот процесс определен в стандарте IETF RFC 1971.This process is defined in IETF RFC 1971.

Это перечисление используется UnicastIPAddressInformation классами MulticastIPAddressInformation и.This enumeration is used by the UnicastIPAddressInformation and MulticastIPAddressInformation classes. Экземпляры этого класса возвращаются при получении сведений об адресе одноадресной рассылки для NetworkInterface объекта.Instances of this class are returned when you retrieve the unicast address information for a NetworkInterface object.

Применяется к