C # içinde Ping.Send(System.Net.IPAddress)ping kullanımı, sağlanan (geçerli) IP adresine veya URL'ye bir ping isteği çalıştıran ve İnternet Kontrol Mesajı Protokolü (ICMP) Paketi olarak adlandırılan bir yanıt alan yöntem kullanılarak elde edilir . Paket, ping talebini alan sunucudan gelen yanıt verilerini içeren 20 baytlık bir başlık içerir. .Net çerçevesi System.Net.NetworkInformationad alanı PingReply, ICMPyanıtı çevirmek ve pinglenmiş sunucu hakkında aşağıdaki gibi yararlı bilgiler sunmak için tasarlanmış özelliklere sahip bir sınıf içerir :
- IPStatus : İnternet Kontrol Mesajı Protokolü (ICMP) yankı cevabını gönderen ana bilgisayarın adresini alır.
- IP adresi : Bir İnternet Kontrol Mesajı Protokolü (ICMP) yankı isteği göndermek ve karşılık gelen ICMP yankı yanıt mesajını almak için geçen milisaniye sayısını alır.
- RoundtripTime (System.Int64) : Yanıtı bir İnternet Kontrol Mesajı Protokolü (ICMP) yankı isteğine iletmek için kullanılan seçenekleri alır.
- PingOptions (System.Byte []) : Bir İnternet Kontrol Mesajı Protokolü (ICMP) yankı yanıtı mesajında alınan veri tamponunu alır.
Aşağıdaki, WinFormsping'in c # ile nasıl çalıştığını göstermek için kullanılan basit bir örnektir . Geçerli bir IP adresi textBox1girip tıklayarak button1, Pingsınıfın bir örneğini, yerel bir değişkeni PingReplyve IP veya URL adresini saklamak için bir dize oluşturuyoruz. PingReplyPing Sendyöntemine atama yapıyoruz, ardından yanıtın IPAddress.Successdurumunu mülk durumu ile karşılaştırarak isteğin başarılı olup olmadığını inceliyoruz . Son olarak, PingReplyyukarıda açıklanan, kullanıcı için göstermemiz gereken bilgilerden çıkarıyoruz.
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!!");
}
}
}
}