C#执行ping命令
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、网站建设、下花园网络推广、重庆小程序开发、下花园网络营销、下花园企业策划、下花园品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供下花园建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
首先,我们用使用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命令
URL分享:http://www.stwzsj.com/qtweb/news48/2898.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联