C# Ping 简单使用 (超时)

本文详细介绍如何使用C#中的Ping类进行域名和IP地址的可达性检查,包括超时处理,通过实例演示如何获取主机状态、IP地址、往返时间和TTL等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C# Ping 简单使用 (含超时处理)

说明,使用ping工具

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

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


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

程序集 System

命名空间:namespace System.Net.NetworkInformation

 class Program
    {
        static void Main(string[] args)
        {
            bool v = PingMethod("baidu.cn");
            bool v2 = PingMethod("192.168.1.140");
            bool v3 = PingMethod("192.168.12.15");
            bool v4 = PingMethod("172.18.35.253");
            bool v5 = PingMethod("127.0.0.1");
            Console.ReadLine();
        }

        /// <summary>
        /// ping命令
        /// </summary>
        /// <param name="host">发送主机名或Ip地址</param>
        /// <returns></returns>
        private static bool PingMethod(string host)
        {
            bool online = false; //是否在线
            Ping pingSender = new Ping();
            //调用同步 send 方法发送数据,将返回结果保存至PingReply实例
            PingReply reply = pingSender.Send(hostNameOrAddress:host, timeout:120); 

            if (reply.Status == IPStatus.Success)
            {
                online = true;
                Console.WriteLine("当前在线,已ping通!");

                StringBuilder sbuilder = new StringBuilder();
                sbuilder.AppendLine(string.Format("答复的主机地址: {0} ", reply.Address.ToString()));
                sbuilder.AppendLine(string.Format("往返时间: {0} ", reply.RoundtripTime));
                sbuilder.AppendLine(string.Format("生存时间(TTL): {0} ", reply.Options.Ttl));
                sbuilder.AppendLine(string.Format("是否控制数据包的分段: {0} ", reply.Options.DontFragment));
                sbuilder.AppendLine(string.Format("缓冲区大小: {0} ", reply.Buffer.Length));
                Console.WriteLine(sbuilder.ToString());
            }
            else
            {
                Console.WriteLine("不在线,ping不通!");
            }

            return online;
        }
    }

参考:
https://blog.youkuaiyun.com/zht666/article/details/24592021
https://blog.youkuaiyun.com/andrew_wx/article/details/6628501

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值