重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容主要讲解“C#怎么执行ping命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#怎么执行ping命令”吧!
专业领域包括网站设计、成都网站制作、成都商城网站开发、微信营销、系统平台开发, 与其他网站设计及系统开发公司不同,创新互联建站的整合解决方案结合了帮做网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,为客户提供全网互联网整合方案。
C#执行ping命令
首先,我们用使用Process类,来创建独立的进程,导入System.Diagnostics,using System.Diagnostics;
实例一个Process类,启动一个独立进程Process p = new Process();
Process类有一个StartInfo属性,这个是ProcessStartInfo类,包括了一些属性和方法。
下面我们用到了他的几个属性:
◆设定程序名p.StartInfo.FileName = "cmd.exe";
◆关闭Shell的使用p.StartInfo.UseShellExecute = false;
◆重定向标准输入p.StartInfo.RedirectStandardInput = true;
◆重定向标准输出p.StartInfo.RedirectStandardOutput = true;
◆重定向错误输出p.StartInfo.RedirectStandardError = true;
◆设置不显示窗口p.StartInfo.CreateNoWindow = true;
上面几个属性的设置是比较关键的一步。
既然都设置好了那就启动进程吧,p.Start();
C#执行ping命令,输入要执行ping命令,这里就是ping了,
p.StandardInput.WriteLine("ping -n 1 www.iwebtrados.com.cn");
p.StandardInput.WriteLine("exit");
从输出流获取命令执行结果,string strRst = p.StandardOutput.ReadToEnd();
利用C#执行ping命令
这里我写的是一个窗体程序。首先添加textbox,listbox,button控件,其中textbox录入域名或IP,listbox显示结果.
在button1_click事件键入
privatevoidbutton1_Click(objectsender,EventArgse) { Pingp1=newPing();//只是演示,没有做错误处理 PingReplyreply=p1.Send(this.textBox1.Text);//阻塞方式 displayReply(reply);//显示结果 } privatevoiddisplayReply(PingReplyreply)//显示结果 { StringBuildersbuilder; if(reply.Status==IPStatus.Success) { sbuilder=newStringBuilder(); sbuilder.Append(string.Format("Address:{0}",reply.Address.ToString())); sbuilder.Append(string.Format("RoundTriptime:{0}",reply.RoundtripTime)); sbuilder.Append(string.Format("Timetolive:{0}",reply.Options.Ttl)); sbuilder.Append(string.Format("Don'tfragment:{0}",reply.Options.DontFragment)); sbuilder.Append(string.Format("Buffersize:{0}",reply.Buffer.Length)); listBox1.Items.Add(sbuilder.ToString()); } }
也可以做异步的处理,修改button1_click,并添加PingCompletedCallBack方法
privatevoidbutton1_Click(objectsender,EventArgse) { Pingp1=newPing(); p1.PingCompleted+=newPingCompletedEventHandler(this.PingCompletedCallBack); //设置PingCompleted事件处理程序 p1.SendAsync(this.textBox1.Text,null); } privatevoidPingCompletedCallBack(objectsender,PingCompletedEventArgse) { if(e.Cancelled) { listBox1.Items.Add("PingCanncel"); return; } if(e.Error!=null) { listBox1.Items.Add(e.Error.Message); return; } StringBuildersbuilder; PingReplyreply=e.Reply; if(reply.Status==IPStatus.Success) { sbuilder=newStringBuilder(); sbuilder.Append(string.Format("Address:{0}",reply.Address.ToString())); sbuilder.Append(string.Format("RoundTriptime:{0}",reply.RoundtripTime)); sbuilder.Append(string.Format("Timetolive:{0}",reply.Options.Ttl)); sbuilder.Append(string.Format("Don'tfragment:{0}",reply.Options.DontFragment)); sbuilder.Append(string.Format("Buffersize:{0}",reply.Buffer.Length)); listBox1.Items.Add(sbuilder.ToString()); } }
到此,相信大家对“C#怎么执行ping命令”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!