思路
首先添加一个文本框,用来接收IP地址。用IPAddress myip = IPAddress.Parse(textBox1.Text.ToString())把文本框内容变成IP地址,写到一个异常中,就可以省略掉判断IP地址是否正确了。
定义一个ping的方法 System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping()
在定义一个接收ICMP返回的方法接收传回来的值
System.Net.NetworkInformation.PingOptions optiong = new System.Net.NetworkInformation.PingOptions()
定义好了发送接收后,定义数据包 string a=“11111111111111111111111111111111111“;
byte[] buffte=encondig.ASCII.getbytes(data); 把定义好的数据包变为2进制代码.
int timeout=1000;定义超时时间
peply.Address.ToString() 目标ip
peply.RoundtripTime.ToString() 返回时间
peply.Options.Ttl.ToString() TTL生存周期
peply.Buffer.length 数据包大小
代码如下:
private void button1_Click(object sender, EventArgs e)
{
try
{
IPAddress myip = IPAddress.Parse(textBox1.Text.ToString());
System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping();
System.Net.NetworkInformation.PingOptions optiong = new System.Net.NetworkInformation.PingOptions();
optiong.DontFragment = true;
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 1000;
listBox1.Items.Add("Pinging ["+textBox1.Text+"] wiht 32 byte of data");
for (int i = 0; i < 4; i++)
{
System.Net.NetworkInformation.PingReply peply = p.Send(myip, timeout, buffer, optiong);
listBox1.Items.Add("Reply from "+textBox1.Text+": bytes="+peply.Buffer.Length+" time="+peply.RoundtripTime.ToString()+" TTL="+peply.Options.Ttl+"");
}
//listBox1.Items.Add(peply.Address.ToString());
//listBox1.Items.Add(peply.RoundtripTime.ToString());
//listBox1.Items.Add(peply.Options.Ttl.ToString());
//listBox1.Items.Add(peply.Options.DontFragment.ToString());
//listBox1.Items.Add(peply.Buffer.ToString());
}
catch (Exception ex)
{
MessageBox.Show("IP地址输入有误");
}
c#实现ping功能
最新推荐文章于 2025-02-26 09:04:48 发布