1

我正在制作一个“健康指数”网站,可以向系统管理员显示我们的网络和数据服务器的健康状况。

我正在测量的一些指标是:

  1. 服务器有多少磁盘空间?
  2. 服务器开了吗?(我可以从我的电脑上 ping 吗)
  3. 运行的特定 Windows 服务是否符合我的预期?
  4. Web 服务器是否可以访问 Internet?

到目前为止,我已经为 1-3 编写了 c# 函数。但是,我无法弄清楚如何解决#4。

基本上,我想确定远程 Web 服务器是否可以访问 Internet。我不想只从我的计算机上 ping 服务器,因为这不能证明它是否可以访问互联网。

该 Web 服务器主要服务于“Intranet”网站......所以,我无法通过简单地访问它在浏览器中提供的网站来证明该服务器具有 Internet。

任何人都知道我如何使用 C# 来确定这个远程 Web 服务器是否可以访问互联网?

谢谢

4

3 回答 3

0

毫无疑问,你可以做所有这些事情,但有一些工具可以管理这类事情等等。

查看 SCOM。它允许您使用大量的开箱即用检查,添加您自己的并将复杂的服务器网络汇总到易于使用的仪表板、警报和报告系统中。

它不是免费的,但如果你有服务器,你可能有某种许可。它很可能比编写自己的东西更便宜,而且几乎可以肯定比你自己编写的东西更彻底、更健壮并且覆盖范围更广。

这可能不是您要寻找的答案,但请检查一下。

于 2013-05-24T14:55:57.353 回答
0

未经测试,但类似这样:

var p = new Process
            {
                StartInfo =
                    {
                        UseShellExecute = false,
                        RedirectStandardOutput = true,
                        RedirectStandardError = true,
                        RedirectStandardInput = true,
                        FileName = @"C:\path\to\PSTools\PsExec.exe",
                        Arguments = @"\\server cmd.exe ping www.google.com"
                    }
            };
        p.Start();

        string output = p.StandardOutput.ReadToEnd();
        string errormessage = p.StandardError.ReadToEnd();

        p.WaitForExit();

        Console.WriteLine(output);
        Console.WriteLine(errormessage);
于 2013-05-24T15:13:53.040 回答
-2

看起来有人在这里有一些代码:

https://stackoverflow.com/a/2521961/1759812

处理检查连接以及处理环回和其他此类项目。这是针对服务器本身的,不确定您是否可以远程获取此信息。

于 2013-05-24T14:56:37.720 回答