知识大全 C#调外部Ping命令获取网络连接情况

Posted 命令

篇首语:如果这世界上真有奇迹,那只是努力的另一个名字。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#调外部Ping命令获取网络连接情况相关的知识,希望对你有一定的参考价值。

C#调外部Ping命令获取网络连接情况  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  以前在玩Windows 的时候 几台电脑连起来 需要测试网络连接是否正常 经常用的一个命令就是Ping exe 感觉相当实用

  现在为我们提供了强大的功能来调用外部工具 并通过重定向输入 输出获取执行结果 下面就用一个例子来说明调用Ping exe命令实现网络的检测 希望初学者有所帮助

  首先 我们用使用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()

  输入要执行的命令 这里就是ping了

  

  p StandardInput WriteLine( ping n ) p StandardInput WriteLine( exit )

  从输出流获取命令执行结果

  

  string strRst = p StandardOutput ReadToEnd()

  在本机测试得到如下结果

  

  

   Microsoft Windows [Version ]\\r\\n(C)

  版权所有 Microsoft Corp \\r\\n\\r\\nD

  \\\\himuraz\\\\csharpproject\\\\ZZ\\\\ConsoleTest\\\\bin\\\\

  Debug>ping n \\r\\n\\r\\r\\nPinging

   with bytes of data

  \\r\\r\\n\\r\\r\\nReply from bytes= time< ms

  TTL= \\r\\r\\n\\r\\r\\nPing statistics

  for \\r\\r\\n Packets Sent =

  Received = Lost = ( % loss)

  \\r\\r\\nApproximate round trip times in milli seconds \\r\\r\\n

  Minimum = ms Maximum = ms

  Average = ms\\r\\r\\n\\r\\nD

  \\\\himuraz\\\\csharpproject\\\\ZZ\\\\ConsoleTest\\\\bin\\\\Debug>exit\\r\\n

  有了输出结果 那还有什么好说的 分析strRst字符串就可以知道网络的连接情况了  下面是一个完整的程序 当然对Ping exe程序执行的结果不全 读者可以进一步修改  完整代码如下

  

  

  using System;using System Diagnostics;namespace ZZclass ZZConsole[STAThread]static void Main(string[] args)string ip = ;string strRst = CmdPing(ip);Console WriteLine(strRst);Console ReadLine();private static string CmdPing(string strIp)Process p = new Process();p StartInfo FileName = cmd exe ;p StartInfo UseShellExecute = false;p StartInfo RedirectStandardInput = true;p StartInfo RedirectStandardOutput = true;p StartInfo RedirectStandardError = true;p StartInfo CreateNoWindow = true;string pingrst;p Start();p StandardInput WriteLine( ping n +strIp);p StandardInput WriteLine( exit );string strRst = p StandardOutput ReadToEnd();if(strRst IndexOf( ( % loss) )!= )pingrst = 连接 ;else if( strRst IndexOf( Destination host unreachable )!= )pingrst = 无法到达目的主机 ;else if(strRst IndexOf( Request timed out )!= )pingrst = 超时 ;else if(strRst IndexOf( Unknown host )!= )pingrst = 无法解析主机 ;elsepingrst = strRst;p Close();return pingrst;

总结 这里就是为了说明一个问题 不但是Ping命令 只要是命令行程序或者是Dos内部命令 我们都可以用上面的方式来执行它 并获取相应的结果 并且这些程序的执行过程不会显示出来 如果需要调用外部程序就可以嵌入到其中使用了 cha138/Article/program/net/201311/12356

相关参考

知识大全 为何我的电脑可以连接网络可是网络状态还是显示未连接

为何我的电脑可以连接网络可是网络状态还是显示未连接打开本地连接,看下详细信息,发个图看看。可以打开cmd,ping网关ip,pingbaidu网址,看是什么情况。win8连接wifi显示获取网络状态“

知识大全 c#程序中如何执行 dos命令

  C#中执行Dos命令C#本来封装了很多类似于Dos命令的东西可是开发需要用它来执行cmdtexe  staticvoidMain(string[]args)  mandstartcmd(ping)

知识大全 orale的tnsping与TCP/IP的ping命令的比较

orale的tnsping与TCP/IP的ping命令的比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 网络适配器的连接速度和双工模式怎么调网速最快

网络适配器的连接速度和双工模式怎么调网速最快连接速度和双式模型里面,改成全双工100M的那个还有就是打开QOS数据包里面受限的20%带宽:(“开始”→“运行”中输入gpedit.msc(扩展名一定不能

知识大全 cf和主机连接延迟,到底是网络问题还电脑系统问题,谁来解决一下,谢谢。

cf和主机连接延迟,到底是网络问题还电脑系统问题,谁来解决一下,谢谢。我遇到过这种问题给联通客服打电话那个狗的让我建立一个网络虚拟连接建立之后果然能玩4兆的网PING他妈的200多让踢出来N次了那帮狗

知识大全 c#获取数据库中所有表名称的方法

  在很多情况下我们需要将指定的数据库中的所有表都列出来在使用c#进行软件开发时我们有哪些方法可是实现这个目的呢?本人对此进行概要的总结有以下中方式可以实现这个目的  1sqldmo  SQLDMO是

知识大全 笔记本电脑不能无线上网,右下角无线网络连接 显示未连接,图标上有一个红色的错号。这是怎么个情况呀

笔记本电脑不能无线上网,右下角无线网络连接显示未连接,图标上有一个红色的错号。这是怎么个情况呀?在保证你那有无限网络的情况下请你重新打开无限网络开关刷新说明你的网络未连接你先看下能不能搜到无限网络能搜

知识大全 远程连接sql server服务器的方法

  如果需要远程连接sqlserver服务器应该用什么方法呢?下面就将教您远程连接sqlserver服务器的解决方案供您参考  一看ping服务器IP能否ping通  这个实际上是看和远程sqlser

知识大全 c#异步调用的几种方式

  首先我们分析一下异步处理的环境  需要在当前线程中获取返回值  不需要在当前线程中获取返回值但是仍然需要对返回值做处理  对于第中情况还可以继续细分  在当前线程中启动线程T然后继续执行当前线程中

知识大全 C#获取IPCONFIG返回值

C#获取IPCONFIG返回值  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在我们获取本机局域