Ping介绍
引用System.Net.NetworkInformation;命名空间。
Ping是一种常用的测试网络连接的工具,可以测试网络延迟和连接状况,以及判断网络是否可用。在C#中也可以通过系统自带的Ping类来实现Ping功能。
本文介绍了C#中实现Ping功能的方法,包括Ping基础使用、监控网络连接状态、发现网络设备等。读者可以根据自己的需求,选择适合的方法来实现Ping功能。
public class PingExample
{
// 定时器
private System.Threading.Timer timer;
// Ping实例
private Ping pingSender;
// Ping的IP地址
private string ip;
// 构造器
public PingExample(string ip)
{
this.ip = ip;
this.pingSender = new Ping();
}
// 开启Ping
public void Start()
{
// 设置定时器
this.timer = new System.Threading.Timer(new System.Threading.TimerCallback(OnTimer), null, TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(10));
}
// 定时器回调
private void OnTimer(object state)
{
PingReply reply = pingSender.Send(ip);
if (reply.Status == IPStatus.Success)
{
Console.WriteLine("网络连接正常!");
}
else
{
Console.WriteLine("网络连接异常");
}
}
// 检查网络连接
public bool CheckNetwork(string ip)
{
//在使用Ping功能之前,需要创建一个Ping实例。使用如下代码可创建一个实例:
Ping ping = new Ping();
try
{
//使用Ping实例的Send方法发送Ping请求。该方法需要接收一个字符串类型的IP地址作为参数,方法返回一个PingReply类型的对象,包含有关Ping请求的结果信息。
PingReply pingReply = ping.Send(ip);
if (pingReply.Status == IPStatus.Success)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
return false;
throw ex;
}
}
}
//调用定期测试网络连接
string ip = "www.baidu.com";
PingReply reply = pingSender.Send(ip);