Événements
Créer des applications et des agents IA
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
L’espace de noms System.Net.NetworkInformation permet de recueillir des informations concernant les événements, les modifications, les statistiques et les propriétés liés au réseau. Dans cet article, vous apprenez à utiliser la classe System.Net.NetworkInformation.NetworkChange pour déterminer si l’adresse réseau ou la disponibilité ont changé. Par ailleurs, vous voyez les statistiques et les propriétés du réseau en fonction de l’interface ou du protocole. Enfin, vous utilisez la classe System.Net.NetworkInformation.Ping pour déterminer si un hôte distant est accessible.
La classe System.Net.NetworkInformation.NetworkChange permet de déterminer si l’adresse réseau ou la disponibilité du réseau ont changé. Pour utiliser cette classe, créez un gestionnaire d’événements en vue de traiter la modification, puis associez-la à un NetworkAddressChangedEventHandler ou un NetworkAvailabilityChangedEventHandler.
NetworkChange.NetworkAvailabilityChanged += OnNetworkAvailabilityChanged;
static void OnNetworkAvailabilityChanged(
object? sender, NetworkAvailabilityEventArgs networkAvailability) =>
Console.WriteLine($"Network is available: {networkAvailability.IsAvailable}");
Console.WriteLine(
"Listening changes in network availability. Press any key to continue.");
Console.ReadLine();
NetworkChange.NetworkAvailabilityChanged -= OnNetworkAvailabilityChanged;
Le code C# précédent :
NetworkChange.NetworkAddressChanged += OnNetworkAddressChanged;
static void OnNetworkAddressChanged(
object? sender, EventArgs args)
{
foreach ((string name, OperationalStatus status) in
NetworkInterface.GetAllNetworkInterfaces()
.Select(networkInterface =>
(networkInterface.Name, networkInterface.OperationalStatus)))
{
Console.WriteLine(
$"{name} is {status}");
}
}
Console.WriteLine(
"Listening for address changes. Press any key to continue.");
Console.ReadLine();
NetworkChange.NetworkAddressChanged -= OnNetworkAddressChanged;
Le code C# précédent :
Vous pouvez collecter des informations relatives aux statistiques et aux propriétés du réseau au niveau d’une interface ou d’un protocole. Les classes NetworkInterface, NetworkInterfaceType et PhysicalAddress fournissent des informations sur les interfaces réseau, alors que les classes IPInterfaceProperties, IPGlobalProperties, IPGlobalStatistics, TcpStatistics et UdpStatistics fournissent des informations sur les paquets des couches 3 et 4.
ShowStatistics(NetworkInterfaceComponent.IPv4);
ShowStatistics(NetworkInterfaceComponent.IPv6);
static void ShowStatistics(NetworkInterfaceComponent version)
{
var properties = IPGlobalProperties.GetIPGlobalProperties();
var stats = version switch
{
NetworkInterfaceComponent.IPv4 => properties.GetTcpIPv4Statistics(),
_ => properties.GetTcpIPv6Statistics()
};
Console.WriteLine($"TCP/{version} Statistics");
Console.WriteLine($" Minimum Transmission Timeout : {stats.MinimumTransmissionTimeout:#,#}");
Console.WriteLine($" Maximum Transmission Timeout : {stats.MaximumTransmissionTimeout:#,#}");
Console.WriteLine(" Connection Data");
Console.WriteLine($" Current : {stats.CurrentConnections:#,#}");
Console.WriteLine($" Cumulative : {stats.CumulativeConnections:#,#}");
Console.WriteLine($" Initiated : {stats.ConnectionsInitiated:#,#}");
Console.WriteLine($" Accepted : {stats.ConnectionsAccepted:#,#}");
Console.WriteLine($" Failed Attempts : {stats.FailedConnectionAttempts:#,#}");
Console.WriteLine($" Reset : {stats.ResetConnections:#,#}");
Console.WriteLine(" Segment Data");
Console.WriteLine($" Received : {stats.SegmentsReceived:#,#}");
Console.WriteLine($" Sent : {stats.SegmentsSent:#,#}");
Console.WriteLine($" Retransmitted : {stats.SegmentsResent:#,#}");
Console.WriteLine();
}
Le code C# précédent :
ShowStatistics
pour afficher les statistiques de chaque protocole.ShowStatistics
appelle IPGlobalProperties.GetIPGlobalProperties() et, en fonction du NetworkInterfaceComponent donné, appelle IPGlobalProperties.GetIPv4GlobalStatistics() ou IPGlobalProperties.GetIPv6GlobalStatistics().Vous pouvez utiliser la classe Ping pour déterminer si un hôte distant est disponible, s’il se trouve sur le réseau et s’il est accessible.
using Ping ping = new();
string hostName = "stackoverflow.com";
PingReply reply = await ping.SendPingAsync(hostName);
Console.WriteLine($"Ping status for ({hostName}): {reply.Status}");
if (reply is { Status: IPStatus.Success })
{
Console.WriteLine($"Address: {reply.Address}");
Console.WriteLine($"Roundtrip time: {reply.RoundtripTime}");
Console.WriteLine($"Time to live: {reply.Options?.Ttl}");
Console.WriteLine();
}
Le code C# précédent :
"stackoverflow.com"
.Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Événements
Créer des applications et des agents IA
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantEntrainement
Parcours d’apprentissage
Configurer la mise en réseau sur Windows clients - Training
MD-100 Configurer la mise en réseau sur Windows clients
Certification
Microsoft Certified : Azure Network Engineer Associate - Certifications
Faites la démonstration de la conception, de l’implémentation et de la maintenance de l’infrastructure de mise en réseau, du trafic d’équilibrage de charge, du routage réseau Azure et bien plus encore.