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.NetworkInformation
Namespace .Net framework berisi kelas yang disebut PingReply
yang memiliki properti yang dirancang untuk menerjemahkan ICMP
respons 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 WinForms
untuk mendemonstrasikan bagaimana ping bekerja di c #. Dengan memberikan alamat IP yang valid di textBox1
dan mengklik button1
, kami membuat instance Ping
kelas, variabel lokal PingReply
, dan string untuk menyimpan alamat IP atau URL. Kami menetapkan PingReply
ke Send
metode ping , lalu kami memeriksa apakah permintaan berhasil dengan membandingkan status balasan dengan IPAddress.Success
status properti . Akhirnya, kami mengekstrak dari PingReply
informasi 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!!");
}
}
}
}