zoukankan      html  css  js  c++  java
  • C#使用ping命令

    说明,使用ping工具

    1.可以用来查询域名是否可以访问

    2.可以用来查询域名对应的ip地址

    如果远程服务器允许ping命令的前提下。

    一、使用Ping类,效率比较高,相应快

    程序集 System

    命名空间:namespace System.Net.NetworkInformation

    //------------使用ping类------
    string host = "www.baidu.com";
    Ping p1 = new Ping();
    PingReply reply = p1.Send(host); //发送主机名或Ip地址
    StringBuilder sbuilder;
    if (reply.Status == IPStatus.Success)
    {
        sbuilder = new StringBuilder();
        sbuilder.AppendLine(string.Format("Address: {0} ", reply.Address.ToString()));
        sbuilder.AppendLine(string.Format("RoundTrip time: {0} ", reply.RoundtripTime));
        sbuilder.AppendLine(string.Format("Time to live: {0} ", reply.Options.Ttl));
        sbuilder.AppendLine(string.Format("Don't fragment: {0} ", reply.Options.DontFragment));
        sbuilder.AppendLine(string.Format("Buffer size: {0} ", reply.Buffer.Length));
        Console.WriteLine(sbuilder.ToString());
    }
    else if (reply.Status == IPStatus.TimedOut)
    {
        Console.WriteLine("超时");
    }
    else
    {
        Console.WriteLine("失败");
    }
    

      

    二、使用cmd命令,启动其他进程获取,等待时间长,不推荐

                string host = "www.baidu.com";
                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 " + host); //主机或ip地址
                p.StandardInput.WriteLine("exit");
                string strRst = p.StandardOutput.ReadToEnd();
                Console.WriteLine(strRst);
                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();
    

      

  • 相关阅读:
    ....
    排序相关的问题(jq,java)_1123
    Spring aop 记录操作日志
    vue -element ui 自定义验证规则,封装在公共的文件里
    vue
    ES6 新特性
    正则表达式
    面向对象基础--继承(2)
    面向对象基础(1)
    安装vue环境
  • 原文地址:https://www.cnblogs.com/soundcode/p/13805092.html
Copyright © 2011-2022 走看看