L'utilisation de ping en C# est réalisée en utilisant la méthode Ping.Send(System.Net.IPAddress)
qui exécute une requête ping vers l'adresse IP ou l'URL fournie (valide) et obtient une réponse, appelée un Paquet du protocole de message de contrôle Internet (ICMP) . Le paquet contient un en-tête de 20 octets qui contient les données de réponse du serveur qui a reçu la requête ping. Le cadre .Net System.Net.NetworkInformation
contient une classe appelée PingReply
qui a des propriétés conçues pour traduire le ICMP
et fournit des informations utiles sur le serveur concerné, telles que.. :
-
IPStatus : Obtient l'adresse de l'hôte qui envoie l'Internet Control Message Protocol (ICMP).
-
Adresse IPAddress : Donne le nombre de millisecondes nécessaires pour envoyer un message Internet. (ICMP) et recevoir le message de réponse ICMP correspondant. le message de réponse ICMP correspondant.
-
RoundtripTime (System.Int64) : Obtient les options utilisées pour transmettre la réponse à une demande d'écho ICMP (Internet Control Message Protocol). d'écho.
-
PingOptions (System.Byte[]) : Obtient le tampon des données reçues dans un message de réponse d'écho du protocole de message de contrôle d'Internet (ICMP).
Voici un exemple simple utilisant WinForms
pour démontrer comment le ping fonctionne en c#. En fournissant une adresse IP valide dans textBox1
et en cliquant sur button1
nous créons une instance de la Ping
une variable locale PingReply
et une chaîne pour stocker l'adresse IP ou URL. Nous attribuons PingReply
au ping Send
puis nous vérifions si la demande a abouti en comparant l'état de la réponse à la propriété IPAddress.Success
statut. Enfin, nous extrayons de PingReply
les informations que nous devons afficher pour l'utilisateur, qui sont décrites ci-dessus.
using System;
using System.Net.NetworkInformation;
using System.Windows.Forms;
namespace PingTest1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Ping p = new Ping();
PingReply r;
string s;
s = textBox1.Text;
r = p.Send(s);
if (r.Status == IPStatus.Success)
{
lblResult.Text = "Ping to " + s.ToString() + "[" + r.Address.ToString() + "]" + " Successful"
+ " Response delay = " + r.RoundtripTime.ToString() + " ms" + "\n";
}
}
private void textBox1_Validated(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(textBox1.Text) || textBox1.Text == "")
{
MessageBox.Show("Please use valid IP or web address!!");
}
}
}
}