Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查机器是否启动/活动_C#_Diagnostics - Fatal编程技术网

C# 检查机器是否启动/活动

C# 检查机器是否启动/活动,c#,diagnostics,C#,Diagnostics,我想检查远程计算机是否已经使用C#启动(重新启动/重新映像后) 现在,我所能想到的就是运行PING命令并检查机器是否会响应。有什么优雅的方式吗 谢谢 编辑 我担心的一点是,PING通常会在机器启动Windows后做出响应。到那时,某些服务可能尚未启动。请参见Anders Lindahl的回答。考虑到PING本质上是设计来完成您想要做的事情的(看看是否有一台机器可用并响应),我认为它已经相当优雅了。为什么事情会复杂化?为什么你认为ping是个坏主意?我不认为你会绕过发送主机的东西,并检查它是否响应

我想检查远程计算机是否已经使用C#启动(重新启动/重新映像后)

现在,我所能想到的就是运行PING命令并检查机器是否会响应。有什么优雅的方式吗

谢谢

编辑


我担心的一点是,PING通常会在机器启动Windows后做出响应。到那时,某些服务可能尚未启动。请参见Anders Lindahl的回答。

考虑到PING本质上是设计来完成您想要做的事情的(看看是否有一台机器可用并响应),我认为它已经相当优雅了。为什么事情会复杂化?

为什么你认为ping是个坏主意?我不认为你会绕过发送主机的东西,并检查它是否响应,并没有任何比ping更小的程序可以做到这一点。通过使用ping,您不必自己实现某些功能。

我不知道优雅,但取决于(a)某些机器可以设置为不响应ping作为潜在的DoS攻击,以及(b)您对机器的访问方式,也许可以使用PowerShell脚本。PowerShell可在intranet上用于确定机器是否已通电、确定各种机器服务的状态、访问该机器上的SQL数据库、打开/关闭应用程序服务等。同样,这取决于您需要执行的操作,C#可能不是该作业的正确工具。

Ping通常足以验证机器是否已正确重新启动,但如果您依赖机器上的任何服务来启动,则可能需要明确检查。查看如何使用来查询:


通过使用NMAP命令 nmap-sS-P0-sV-O

其中可以是单个IP、主机名或子网

-sS TCP SYN扫描(也称为半开放扫描或隐形扫描)

-P0选项允许您关闭ICMP ping

-sV选项启用版本检测

-O尝试标识远程操作系统的标志

其他选择:

-一个选项同时启用操作系统指纹和版本检测

-v使用-v两次可以更详细


nmap-sS-P0-A-v

我关心的一个问题是PING通常会在机器启动Windows后响应。到那时,某些服务可能尚未启动。请看Anders Lindahl的回答。当然。然而,OP并没有说他们依赖某项特定的服务,只是说他们想知道机器是否启动了。无论哪种方式,这两个答案都是有用的