DuplicateAddressDetectionState Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Spécifie l'état actuel d'une adresse IP.
public enum class DuplicateAddressDetectionState
public enum DuplicateAddressDetectionState
type DuplicateAddressDetectionState =
Public Enum DuplicateAddressDetectionState
- Héritage
Champs
Deprecated | 3 | L'adresse est valide, mais elle approche de la fin de sa durée de vie de bail et ne doit pas être utilisée par les applications. |
Duplicate | 2 | L'adresse n'est pas unique. Cette adresse ne doit pas être assignée à l'interface réseau. |
Invalid | 0 | L'adresse n'est pas valide. Une adresse non valide est expirée et n'est plus assignée à une interface ; les applications ne doivent pas lui envoyer de paquets de données. |
Preferred | 4 | L'adresse est valide et son utilisation n'est pas restreinte. |
Tentative | 1 | La procédure de détection d'adresse dupliquée a échoué. Les applications ne doivent pas utiliser l'adresse, car elle n'est pas encore valide et les paquets qui lui sont envoyés sont ignorés. |
Exemples
L’exemple de code suivant détermine les informations d’adresse unicast.
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
Remarques
Pour garantir que toutes les interfaces d’un réseau ont une adresse unique, l’hôte d’interface est responsable de l’exécution d’un algorithme de « détection d’adresses en double » sur les adresses unicast. L’objectif de cet algorithme est de tenter d’empêcher les adresses non uniques sur le réseau. Ce processus est défini dans la RFC 1971 de l’IETF.
Cette énumération est utilisée par les UnicastIPAddressInformation classes et MulticastIPAddressInformation . Les instances de cette classe sont retournées lorsque vous récupérez les informations d’adresse de unidiffusion d’un NetworkInterface objet.