L'utilisation de ping en C # est obtenue à l'aide de la méthode Ping.Send(System.Net.IPAddress)
, qui exécute une requête ping à l'adresse IP ou à l'URL fournie (valide) et obtient une réponse appelée paquet ICMP (Internet Control Message Protocol) . 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. L' System.Net.NetworkInformation
espace de noms .Net Framework contient une classe appelée PingReply
qui a des propriétés conçues pour traduire la ICMP
réponse et fournir des informations utiles sur le serveur ping, telles que:
- IPStatus : obtient l'adresse de l'hôte qui envoie la réponse d'écho ICMP (Internet Control Message Protocol).
- IPAddress : obtient le nombre de millisecondes nécessaires pour envoyer une demande d'écho ICMP (Internet Control Message Protocol) et recevoir le message de réponse d'écho ICMP correspondant.
- RoundtripTime (System.Int64) : obtient les options utilisées pour transmettre la réponse à une demande d'écho ICMP (Internet Control Message Protocol).
- PingOptions (System.Byte []) : Obtient la mémoire tampon des données reçues dans un message de réponse d'écho ICMP (Internet Control Message Protocol).
Voici un exemple simple d'utilisation WinForms
pour illustrer le fonctionnement de ping dans c #. En fournissant une adresse IP valide textBox1
et en cliquant button1
, nous créons une instance de la Ping
classe, une variable locale PingReply
et une chaîne pour stocker l'adresse IP ou URL. Nous attribuons PingReply
à la Send
méthode ping , puis nous inspectons si la requête a abouti en comparant l'état de la réponse à l' IPAddress.Success
état de la propriété . Enfin, nous extrayons 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!!");
}
}
}
}