9

我想知道如何检查我网络上的机器是否在线,只使用 C#。

我网络上的所有机器都使用相同的操作系统(Windows 7),并且我在所有机器上都以相同的用户身份登录。

我的目标是检查它们是否处于活动状态或打开状态。

4

2 回答 2

25

简单的:

Ping ping = new Ping();
PingReply pingReply = ping.Send("ip address here");

if(pingReply.Status == IPStatus.Success)
{
   //Machine is alive
}
于 2012-05-30T14:31:30.937 回答
4

如果不在目标机器上安装一些自定义软件,您可能希望的最好的方法是使用 Ping 类。

一个快速而肮脏的实现可能如下所示:

var p = new Ping();
if(p.Send("HostNameOrIP").Status != Success) return;

如果您对什么是“活动和打开”机器有非常具体的要求,并且只能在本地检测状态,则需要编写一个将公开 WCF 服务的 Windows 服务。此服务将在目标计算机上运行,​​并在源计算机请求时报告本地状态。

于 2012-05-30T14:30:59.400 回答