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.NetworkInformation
ad alanı PingReply
, ICMP
yanı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, WinForms
ping'in c # ile nasıl çalıştığını göstermek için kullanılan basit bir örnektir . Geçerli bir IP adresi textBox1
girip tıklayarak button1
, Ping
sınıfın bir örneğini, yerel bir değişkeni PingReply
ve IP veya URL adresini saklamak için bir dize oluşturuyoruz. PingReply
Ping Send
yöntemine atama yapıyoruz, ardından yanıtın IPAddress.Success
durumunu mülk durumu ile karşılaştırarak isteğin başarılı olup olmadığını inceliyoruz . Son olarak, PingReply
yukarı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!!");
}
}
}
}