📜  使用 c# ping(1)

📅  最后修改于: 2023-12-03 15:36:26.812000             🧑  作者: Mango

使用 C# Ping

在 C# 中,我们可以使用 System.Net.NetworkInformation 命名空间中的 Ping 类来实现主机的 Ping 测试。Ping 测试是一个常见的网络测试监控方法,它可以检测主机是否连接网络,以及条目是否可以访问。

使用 Ping 类

要使用 Ping 类,首先需要在代码文件中添加以下命名空间:

using System.Net.NetworkInformation;

然后,创建一个 Ping 对象:

Ping pingSender = new Ping();

接着,使用 Ping.Send 方法发送 Ping 请求并获取 Ping 回应:

PingReply reply = pingSender.Send("bing.com");

这会将请求发送到 bing.com 主机,并返回一个 PingReply 类型的对象,其中包含了 Ping 回应的详细信息。在 Ping.Send 方法中,您可以使用主机名或者 IP 地址作为参数。

下面是一个完整示例代码,可以让您更好地了解如何使用 Ping 类:

using System;
using System.Net.NetworkInformation;

class PingExample
{
    public static void Main()
    {
        Ping pingSender = new Ping();
        PingReply reply = pingSender.Send("bing.com");

        if (reply.Status == IPStatus.Success)
        {
            Console.WriteLine("Ping测试成功。");
            Console.WriteLine("响应时间为 {0} 毫秒。", reply.RoundtripTime);
        }
        else
        {
            Console.WriteLine("Ping测试失败。");
            Console.WriteLine(reply.Status);
        }
    }
}

在上面的代码中,我们首先创建了一个 Ping 对象,然后使用 Send 方法发送了一个 Ping 请求。接着,我们检查了 Ping 回应的状态,并相应地输出了结果。

添加 Ping 测试到应用程序中

如果您正在开发一个需要实时监控网络可用性的应用程序,您可能需要添加 Ping 测试功能。

以下是一个简单的示例,演示如何使用 Ping 类实现 Ping 测试,以及如何将其添加到应用程序中:

using System;
using System.Net.NetworkInformation;
using System.Timers;

class Program
{
    static Timer timer;

    static void Main()
    {
        timer = new Timer(1000);
        timer.Elapsed += PingHosts;
        timer.AutoReset = true;
        timer.Enabled = true;
        Console.ReadKey();
    }

    static void PingHosts(Object source, ElapsedEventArgs e)
    {
        Ping pingSender = new Ping();
        PingReply reply = pingSender.Send("bing.com");

        if (reply.Status == IPStatus.Success)
        {
            Console.WriteLine("Ping测试成功。");
            Console.WriteLine("响应时间为 {0} 毫秒。", reply.RoundtripTime);
        }
        else
        {
            Console.WriteLine("Ping测试失败。");
            Console.WriteLine(reply.Status);
        }
    }
}

在上面的代码中,我们创建了一个名为 PingHosts 的方法,该方法使用 Ping 类实现了 Ping 测试。我们还创建了一个 Timer 对象,它每隔 1 秒钟就会执行 PingHosts 方法。最后,我们在 Main 方法中启动了 Timer 对象,并等待用户按下任意键才退出程序。

总结

使用 C# Ping 来实现主机的 Ping 测试非常简单,只需要使用 System.Net.NetworkInformation 命名空间中的 Ping 类即可。无论您是要手动测试主机的可用性,还是需要在应用程序中添加实时 Ping 测试,这个功能都非常实用。