利用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:
‧TcpClient.Connect 方法 (IPEndPoint)
‧實作同步 .NET Socket TCP《使用TcpClient與TcpListener類別》
Dotblogs Tags: C#