利用Ping與TcpClient類別確認遠端主機是否存在

利用Ping與TcpClient類別確認遠端主機是否存在

這是一個最近在撰寫的小工具,主要是用於確認要連線的主機是否存在。我覺得還蠻好用的類別,所以分享給大家一起使用。

以下將針對Ping類別與TcpClient類別的操作來加以說明:

 

〉利用Ping類別來進行遠端主機是否存在

   1: /// <summary>
   2: /// 利用IPAddress屬性配合Ping進行遠端Server的確認。
   3: /// </summary>
   4: /// <returns></returns>
   5: public bool ByPing()
   6: {
   7:     IPAddress tIP = IPAddress.Parse(IPv4Address);
   8:     Ping tPingControl = new Ping();
   9:     PingReply tReply = tPingControl.Send(tIP);
  10:     tPingControl.Dispose();
  11:     if (tReply.Status != IPStatus.Success)
  12:         return false;
  13:     else
  14:         return true;
  15: }

藉由指定IPAddress後,透過Ping()類別,進行發送訊息的任務,以確認Status的列舉值為Success才算成功。

 

〉利用TcpClient類別進行遠端主機指定的IP與Port是否開通

   1: /// <summary>
   2: /// 利用IPAddress與Port屬性配合TCPClient進行遠端Server的確認。
   3: /// </summary>
   4: /// <returns>true:存在;false:不存在</returns>
   5: public bool ByTcpIp()
   6: {
   7:     IPEndPoint tIPEndPoint = new IPEndPoint(IPAddress.Parse(IPv4Address), Port);
   8:     TcpClient tClient = new TcpClient();
   9:     tClient.Connect(tIPEndPoint);
  10:     bool tResult = tClient.Connected;
  11:     tClient.Close();
  12:     return tResult;
  13: }

除了可以透過簡單Ping的方式之外,也可以透過TCP/IP的方式確認指定的IP與PORT是否開啟,

上述的程式碼簡單使用TcpClient類別,進行連結的測試,並且確認是否為Connected的狀態,

以確認連線通道可以運作。

 

======

以上是分享簡單透過Ping類別與TcpClient類別進行遠端主機測試是否存在的方式,希望對大家有所幫助。

 

References

Ping Class

TcpClient 類別

TcpClient.Connect 方法 (IPEndPoint)

IPAddress Class

實作同步 .NET Socket TCP《使用TcpClient與TcpListener類別》

實作非同步模式的 TCP 用戶端

 

Dotblogs Tags: