การใช้ปิงใน C # จะทำได้โดยการใช้วิธีการPing.Send(System.Net.IPAddress)
ซึ่งไหลคำขอ ping ไปยังที่อยู่ที่ให้ไว้ (ที่ถูกต้อง) IP หรือ URL และได้รับการตอบสนองที่ถูกเรียกว่าการควบคุมอินเทอร์เน็ต Message Protocol (ICMP) แพ็คเก็ต แพ็คเก็ตมีส่วนหัว 20 ไบต์ซึ่งมีข้อมูลการตอบกลับจากเซิร์ฟเวอร์ที่ได้รับคำขอ ping System.Net.NetworkInformation
เนมสเปซ. Net framework มีคลาสที่เรียกPingReply
ว่ามีคุณสมบัติที่ออกแบบมาเพื่อแปลการICMP
ตอบสนองและส่งมอบข้อมูลที่เป็นประโยชน์เกี่ยวกับเซิร์ฟเวอร์ pinged เช่น:
- IPStatus : รับที่อยู่ของโฮสต์ที่ส่งการตอบกลับด้วยเสียงสะท้อนของ Internet Control Message Protocol (ICMP)
- IPAddress : รับจำนวนมิลลิวินาทีที่ใช้ในการส่งคำขอสะท้อนข้อความ Internet Control Message Protocol (ICMP) และรับข้อความตอบกลับ ICMP echo ที่เกี่ยวข้อง
- RoundtripTime (System.Int64) : รับตัวเลือกที่ใช้ในการส่งการตอบกลับไปยังคำขอสะท้อนข้อความ Internet Control Message Protocol (ICMP)
- PingOptions ( System Byte []) : รับบัฟเฟอร์ของข้อมูลที่ได้รับในข้อความตอบกลับแบบสะท้อนของ Internet Control Message Protocol (ICMP)
ต่อไปนี้เป็นตัวอย่างง่ายๆที่ใช้WinForms
เพื่อสาธิตการทำงานของ ping ใน c # ด้วยการระบุที่อยู่ IP ที่ถูกต้องtextBox1
และคลิกbutton1
เรากำลังสร้างอินสแตนซ์ของPing
คลาสตัวแปรโลคัลPingReply
และสตริงเพื่อจัดเก็บที่อยู่ IP หรือ URL เรากำหนดวิธีการPingReply
ping Send
จากนั้นเราจะตรวจสอบว่าคำขอประสบความสำเร็จหรือไม่โดยเปรียบเทียบสถานะของการตอบกลับกับIPAddress.Success
สถานะคุณสมบัติ สุดท้ายเราดึงPingReply
ข้อมูลจากข้อมูลที่จำเป็นสำหรับผู้ใช้ซึ่งได้อธิบายไว้ข้างต้น
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!!");
}
}
}
}