C# Ping 簡單使用 (超時)
阿新 • • 發佈:2019-02-11
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;
}
}