C#使用ping命令的两个例子

 更新时间:2014年08月30日 12:12:49   投稿:junjie  
这篇文章主要介绍了C#使用ping命令的两个例子,本文给出了调用CMD命令和使用C# ping类的两个例子,需要的朋友可以参考下

方法一:调用cmd 的ping命令

 

private static string CmdPing(string strIp)
{

  Process p = new Process(); p.StartInfo.FileName = "cmd.exe";//设定程序名
  p.StartInfo.UseShellExecute = false; //关闭Shell的使用
  p.StartInfo.RedirectStandardInput = true;//重定向标准输入
  p.StartInfo.RedirectStandardOutput = true;//重定向标准输出
  p.StartInfo.RedirectStandardError = true;//重定向错误输出
  p.StartInfo.CreateNoWindow = true;//设置不显示窗口
  string pingrst; p.Start(); p.StandardInput.WriteLine("ping " + strIp);
  p.StandardInput.WriteLine("exit");
  string strRst = p.StandardOutput.ReadToEnd();
  
  if (strRst.IndexOf("(0% loss)") != -1)
  {
    pingrst = "连接";
  }
  else if (strRst.IndexOf("Destination host unreachable.") != -1)
  {
    pingrst = "无法到达目的主机";
  }
  else if (strRst.IndexOf("Request timed out.") != -1)
  {
    pingrst = "超时";
  }
  else if (strRst.IndexOf("Unknown host") != -1)
  {
    pingrst = "无法解析主机";
  }
  else
  {
    pingrst = strRst;
  }
  p.Close();
  return pingrst;
}

方法二:使用C#中的ping 类

private void displayReply(PingReply reply) //显示结果
{

  Ping p1 = new Ping(); //只是演示,没有做错误处理
  
  PingReply reply = p1.Send("填写ip地址");
  
  StringBuilder sbuilder ;
  if (reply.Status == IPStatus.Success)
  {
      sbuilder = new StringBuilder();
      sbuilder.Append(string.Format("Address: {0} ", reply.Address.ToString ()));
      sbuilder.Append(string.Format("RoundTrip time: {0} ", reply.RoundtripTime));
      sbuilder.Append(string.Format("Time to live: {0} ", reply.Options.Ttl));
      sbuilder.Append(string.Format("Don't fragment: {0} ", reply.Options.DontFragment));
      sbuilder.Append(string.Format("Buffer size: {0} ", reply.Buffer.Length));
      response.write(sbuilder.ToString());
  }
  else if (reply.Status == IPStatus.TimeOut)  
  {
    response.write("超时");
  }else{
    response.write("失败");
  }

相关文章

  • Unity实现角色受击身体边缘发光特效

    Unity实现角色受击身体边缘发光特效

    这篇文章主要为大家详细介绍了Unity实现角色受击身体边缘发光特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C#自适应合并文件的方法

    C#自适应合并文件的方法

    这篇文章主要介绍了C#自适应合并文件的方法,涉及C#基于FileStream类实现文件读写操作的相关技巧,非常简单实用,需要的朋友可以参考下
    2015-07-07
  • UnityShader3实现彩光效果

    UnityShader3实现彩光效果

    这篇文章主要为大家详细介绍了UnityShader3实现彩光效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • C#使用DateTime.Now静态属性动态获得系统当前日期和时间

    C#使用DateTime.Now静态属性动态获得系统当前日期和时间

    本文主要介绍了C#使用DateTime.Now静态属性动态获得系统当前日期和时间,DateTime结构的Now静态属性只是得到一个系统时间对象,该时间对象不会随着系统时间的变化而变化,如果要动态显示系统时间,可以使用计时器间隔地获取系统时间对象并显示,感兴趣的可以了解一下
    2024-01-01
  • C#面向切面编程之AspectCore用法详解

    C#面向切面编程之AspectCore用法详解

    AspectCore 是Lemon名下的一个国产Aop框架,提供了一个全新的轻量级和模块化的Aop解决方案,下面我们就来深入了解下AspectCore在C#中的具体使用吧
    2024-01-01
  • C#操作字符串方法总结实例代码

    C#操作字符串方法总结实例代码

    这篇文章主要介绍了C#操作字符串方法总结实例代码,需要的朋友可以参考下
    2017-10-10
  • 基于集合的子集与集合的全排列的相关问题

    基于集合的子集与集合的全排列的相关问题

    本篇文章介绍了,集合的子集与集合的全排列的相关系列问题说明,需要的朋友参考下
    2013-05-05
  • 利用WPF实现Windows屏保的制作

    利用WPF实现Windows屏保的制作

    屏保程序的本质上就是一个Win32 窗口应用程序。本文将利用WPF实现Windows屏保的制作,文中的示例代码简洁易懂,对我们学习WPF有一定帮助,感兴趣的可以了解一下
    2022-07-07
  • c#窗体传值用法实例详解

    c#窗体传值用法实例详解

    这篇文章主要介绍了c#窗体传值用法,以实例形式较为详细的分析了C#窗体传值的各种常用技巧,需要的朋友可以参考下
    2015-06-06
  • 分享我在工作中遇到的多线程下导致RCW无法释放的问题

    分享我在工作中遇到的多线程下导致RCW无法释放的问题

    最近在做项目中遇到一个问题,在调用一个类库中的方法时,出现如下异常信息:尝试释放正在使用的RCW,活动线程或其他线程上正在使用该 RCW,释放正在使用的 RCW 的尝试会导致损坏或数据丢失
    2015-12-12

最新评论