Menggunakan ping di C # dicapai dengan menggunakan metode Ping.Send(System.Net.IPAddress), yang menjalankan permintaan ping ke alamat IP atau URL yang disediakan (valid) dan mendapat respons yang disebut Paket Internet Control Message Protocol (ICMP) . Paket berisi header 20 byte yang berisi data respon dari server yang menerima permintaan ping. System.Net.NetworkInformationNamespace .Net framework berisi kelas yang disebut PingReplyyang memiliki properti yang dirancang untuk menerjemahkan ICMPrespons dan memberikan informasi berguna tentang server yang di-ping seperti:
- IPStatus : Mendapatkan alamat host yang mengirim balasan gema Internet Control Message Protocol (ICMP).
- Alamat IP : Mendapatkan jumlah milidetik yang diperlukan untuk mengirim permintaan gema Internet Control Message Protocol (ICMP) dan menerima pesan balasan gema ICMP yang sesuai.
- RoundtripTime (System.Int64) : Mendapat opsi yang digunakan untuk mengirimkan balasan ke permintaan gema Internet Control Message Protocol (ICMP).
- PingOptions (System.Byte []) : Mendapat buffer data yang diterima dalam pesan balasan gema Internet Control Message Protocol (ICMP).
Berikut ini adalah contoh sederhana yang digunakan WinFormsuntuk mendemonstrasikan bagaimana ping bekerja di c #. Dengan memberikan alamat IP yang valid di textBox1dan mengklik button1, kami membuat instance Pingkelas, variabel lokal PingReply, dan string untuk menyimpan alamat IP atau URL. Kami menetapkan PingReplyke Sendmetode ping , lalu kami memeriksa apakah permintaan berhasil dengan membandingkan status balasan dengan IPAddress.Successstatus properti . Akhirnya, kami mengekstrak dari PingReplyinformasi yang kami butuhkan untuk ditampilkan untuk pengguna, yang dijelaskan di atas.
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!!");
}
}
}
}