当前位置: 首页 > 编程语言 > C#

C#检查远程服务器分享

时间:2023-04-10 17:09:26 C#

C#检查远程服务器谁能建议检查(使用.NET3.5)远程服务器是否可用的最佳方法是什么?我正在考虑使用以下代码,但想知道如果社区有其他选择,是否存在更好的方法。TcpClient客户端=newTcpClient("MyServer",80);if(!client.Connected){thrownewException("无法连接到端口80上的MyServer");}client.Close();你可以ping它你可以从那里下载默认页面你可以做一个HEAD请求如果它是你网络上的本地IIS6服务器并且你有一些管理员详细信息你可以使用一些DirectoryEntry代码连接到IIS136615136615上的一些答案可能也有帮助,尤其是关于套接字的公认答案对于打印服务器(或者,特别是打印机),KScott的代码可能会有所帮助。无论如何使用这个有趣的代码:-)该代码提到了dns.resolve,它已被弃用并被Dns.GetHostEntry取代我的想法很简单:-)如果您只想查看给定服务器是否在线,那么在一个简单的ping应该大部分时间都在做这个把戏。PingReplypingReply;使用(varping=newPing())pingReply=ping.Send("http://www.stackoverflow.com/");varavailable=pingReply.Status==IPStatus.Success;使用这种方法,您也不会以任何方式滥用HTTP服务器。否则(如果您想检查特定端口上是否可以连接),那基本上看起来不错。只是为了添加Dan的答案......我只需要实现这个,这里有一个很好的小代码片段可以帮助那些从谷歌来到这里的人。ImportsSystem.NetPrivateFunctionURLExists(pURLAsString)AsBooleanTry'CreatingtheHttpWebRequestDimrequestAsHttpWebRequest=TryCast(WebRequest.Create(pURL),HttpWebRequest)'设置请求方法HEAD,您也可以使用GET。request.Method="HEAD"'获取Web响应。DimresponseAsHttpWebResponse=TryCast(request.GetResponse(),HttpWebResponse)'如果状态代码==200则返回TrueReturn(response.StatusCode=HttpStatusCode.OK)Catch'任何异常都将返回false。ReturnFalseEndTryEndFunction对不起,这是VB,但这是我面前的。我将把它留作练习,供读者根据需要将其转换为C#。如果您使用的是早期版本的.NETFramework,例如我,版本2,您将没有Ping,也没有System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()。然后,您可以使用HttpWebRequest检查主机反对意见:publicstaticboolAccessToWebService(){stringhost="http://192.168.99.41";尝试{HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(host);request.Method="HEAD";HttpWebResponse响应=(HttpWebResponse)request.GetResponse();返回响应.StatusCode==HttpStatusCode.OK;}赶上(异常){返回假;我想你想检查该网站是否可用。您可以使用System.Net.WebRequest并检查结果。更新:根据您的评论,如果您有一些服务器(和服务)要监控,最好使用像Nagios、HostMonitor或IPSentry这样的软件包,而不是自己动手。以上是C#学习教程:C#检查远程服务器共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: