DuplicateAddressDetectionState Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan status alamat IP saat ini.
public enum class DuplicateAddressDetectionState
public enum DuplicateAddressDetectionState
type DuplicateAddressDetectionState =
Public Enum DuplicateAddressDetectionState
- Warisan
Bidang
Deprecated | 3 | Alamatnya valid, tetapi mendekati masa pakai sewanya dan tidak boleh digunakan oleh aplikasi. |
Duplicate | 2 | Alamatnya tidak unik. Alamat ini tidak boleh ditetapkan ke antarmuka jaringan. |
Invalid | 0 | Alamat tidak valid. Alamat yang tidak valid kedaluwarsa dan tidak lagi ditetapkan ke antarmuka; aplikasi tidak boleh mengirim paket data ke dalamnya. |
Preferred | 4 | Alamat valid dan penggunaannya tidak dibatasi. |
Tentative | 1 | Evaluasi prosedur deteksi alamat duplikat alamat belum berhasil diselesaikan. Aplikasi tidak boleh menggunakan alamat karena belum valid dan paket yang dikirim ke alamat tersebut dibuang. |
Contoh
Contoh kode berikut menentukan informasi alamat 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
Keterangan
Untuk membantu memastikan bahwa semua antarmuka di jaringan memiliki alamat yang unik, host antarmuka bertanggung jawab untuk menjalankan algoritma "deteksi alamat duplikat" pada alamat unicast. Tujuan dari algoritma ini adalah untuk mencoba mencegah alamat yang tidak unik pada jaringan. Proses ini didefinisikan dalam IETF RFC 1971.
Enumerasi ini digunakan oleh UnicastIPAddressInformation kelas dan MulticastIPAddressInformation . Instans kelas ini dikembalikan saat Anda mengambil informasi alamat unicast untuk objek NetworkInterface .