在asp.net里如何调用cmd里的ping命令,并把结果显示出来。

mywindyboy 2005-12-27 09:13:31
Process prc=new Process();
prc.StartInfo.FileName="cmd.exe";
prc.StartInfo.UseShellExecute=false;
prc.StartInfo.RedirectStandardInput = true;
prc.StartInfo.RedirectStandardOutput = true;
prc.StartInfo.RedirectStandardError = true;
// prc.StartInfo.CreateNoWindow = true;
prc.Start();
prc.StandardInput.WriteLine("ping 10.1.0.1");
prc.StandardInput.WriteLine("exit");
prc.StandardInput.Close();
prc.StandardOutput.ReadToEnd();
我这样写什么信息都看不到,也不知道程序到底运行了没有
...全文
600 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ddboy 2005-12-27
  • 打赏
  • 举报
回复
其实不需要这么麻烦,直接用Dos命令

ping 127.0.0.1 >> D:\127.0.0.1.txt

然后读取这个文件
dsclub 2005-12-27
  • 打赏
  • 举报
回复
开一个新的线程来做
mywindyboy 2005-12-27
  • 打赏
  • 举报
回复
cmd里的命令如果有权限应该都能执行的吧
roydu 2005-12-27
  • 打赏
  • 举报
回复
====================================


you didn't write the output out, how do you know what happend??

Process prc=new Process();
prc.StartInfo.FileName="cmd.exe";
prc.StartInfo.UseShellExecute=false;
prc.StartInfo.RedirectStandardInput = true;
prc.StartInfo.RedirectStandardOutput = true;
prc.StartInfo.RedirectStandardError = true;
prc.StartInfo.CreateNoWindow = false;
prc.Start();
prc.StandardInput.WriteLine("ping 127.0.0.1");
prc.StandardInput.Close();
Response.Write(prc.StandardOutput.ReadToEnd());


如果要执行关机,是否能把ping 127.0.0.1改成shutdown -s呢?
mywindyboy 2005-12-27
  • 打赏
  • 举报
回复
我现在从数据库里提取IP数据循环执行,但是好像出现没什么反映的现象,应该从哪儿执行循环呢?
string sql="select eqname,addr,ip from eq order by eqid desc";
DataTable dt=universal.sd.rdTable(sql);
DataColumn fullTitle = new DataColumn("rst");
fullTitle.DataType=System.Type.GetType("System.String");
dt.Columns.Add(fullTitle);
string strRst;
foreach(DataRow dr in dt.Rows)
{
Process prc=new Process();
prc.StartInfo.FileName="cmd.exe";
prc.StartInfo.UseShellExecute=false;
prc.StartInfo.RedirectStandardInput = true;
prc.StartInfo.RedirectStandardOutput = true;
prc.StartInfo.RedirectStandardError = true;
prc.StartInfo.CreateNoWindow = true;
prc.Start();
prc.StandardInput.WriteLine("ping -n 1 "+dr["ip"].ToString());
prc.StandardInput.WriteLine("exit");
strRst=prc.StandardOutput.ReadToEnd();
if(strRst.IndexOf("(0% loss)")!=-1)

strRst = "连接";

else if( strRst.IndexOf("Destination host unreachable.")!=-1)

strRst = "无法到达目的主机";

else if(strRst.IndexOf("Request timed out.")!=-1)

strRst = "超时";

else if(strRst.IndexOf("Unknown host")!=-1)

strRst = "无法解析主机";


prc.Close();
dr["rst"]=strRst;
}
dt.AcceptChanges();
dg.DataSource=dt;
dg.DataBind();
lnwuyaowei 2005-12-27
  • 打赏
  • 举报
回复
.net2.0下有专门的一个类处理这个。
saucer 2005-12-27
  • 打赏
  • 举报
回复
you didn't write the output out, how do you know what happend??

Process prc=new Process();
prc.StartInfo.FileName="cmd.exe";
prc.StartInfo.UseShellExecute=false;
prc.StartInfo.RedirectStandardInput = true;
prc.StartInfo.RedirectStandardOutput = true;
prc.StartInfo.RedirectStandardError = true;
prc.StartInfo.CreateNoWindow = false;
prc.Start();
prc.StandardInput.WriteLine("ping 127.0.0.1");
prc.StandardInput.Close();
Response.Write(prc.StandardOutput.ReadToEnd());
charles_y 2005-12-27
  • 打赏
  • 举报
回复
是在服务器端
LoveCherry 2005-12-27
  • 打赏
  • 举报
回复
把ping的结果写入文本文件,然后读文本文件试试
mywindyboy 2005-12-27
  • 打赏
  • 举报
回复
调用页面后是在客户端Ping,而不是在服务端ping吧?
lzt7 2005-12-27
  • 打赏
  • 举报
回复
http://www.kmov.com.cn/dispbbs.asp?boardid=5&id=12519&page=1

62,054

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧