C#检查远程服务器
如果远程服务器可用,任何人都可以建议检查(使用.NET 3.5)的最佳方法是什么?
我正在考虑使用以下代码,但想知道如果社区有另一种选择,是否存在更好的方法。
TcpClient client = new TcpClient("MyServer", 80); if (!client.Connected) { throw new Exception("Unable to connect to MyServer on Port 80"); } client.Close();
你可以ping它
您可以从中下载默认页面
你可以做一个HEAD请求
如果它是您网络上的本地IIS6服务器,并且您有一些管理员详细信息,则可以使用某些DirectoryEntry代码连接到IIS
136615上的一些答案也可能有所帮助,特别是关于套接字的公认答案
对于打印服务器(或者,特别是打印机),K Scott的代码可能会有所帮助。 无论如何都要使用这个有趣的代码:-)该代码提到了dns.resolve,它被废弃并被Dns.GetHostEntry取代
我的想法很简单:-)
如果您只想查看给定服务器是否在线,那么在大多数情况下,简单的ping应该可以完成。
PingReply pingReply; using (var ping = new Ping()) pingReply = ping.Send("https://www.stackoverflow.com/"); var available = pingReply.Status == IPStatus.Success;
使用此方法,您也不会以任何方式滥用HTTP服务器。
否则(如果你想检查特定端口上是否可以连接),那基本上看起来很好。
只是为了添加丹的答案……我只需要实现这一点,这里有一个很好的小代码片段,可以帮助那些从谷歌到这里的人。
Imports System.Net Private Function URLExists(pURL As String) As Boolean Try 'Creating the HttpWebRequest Dim request As HttpWebRequest = TryCast(WebRequest.Create(pURL), HttpWebRequest) 'Setting the Request method HEAD, you can also use GET too. request.Method = "HEAD" 'Getting the Web Response. Dim response As HttpWebResponse = TryCast(request.GetResponse(), HttpWebResponse) 'Returns TURE if the Status code == 200 Return (response.StatusCode = HttpStatusCode.OK) Catch 'Any exception will returns false. Return False End Try End Function
抱歉这是VB,但这就是我面前的情况。 我将把它作为练习让读者根据需要将其转换为C#。
如果您使用的是早期版本的.NET Framework,就像我一样,版本2,您将没有Ping,也没有System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()
。 然后,您可以使用HttpWebRequest
来检查主机的异议:
public static bool AccessToWebService() { string host = "https://192.168.99.41"; try { HttpWebRequest request = (HttpWebRequest) WebRequest.Create(host); request.Method = "HEAD"; HttpWebResponse response = (HttpWebResponse) request.GetResponse(); return response.StatusCode == HttpStatusCode.OK; } catch (Exception) { return false; } }
我猜你想检查一下网站是否可用。 您可以使用System.Net.WebRequest
并检查结果。
更新:根据您的评论,如果您有一些服务器(和服务)要监控,那么使用Nagios , HostMonitor或IPSentry等软件包可能更好,而不是自己滚动。
上述就是C#学习教程:C#检查远程服务器分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1043088.html