使用C#检查远程服务器上的Internet连接

时间:2013-05-24 14:43:22

标签: c# remote-server

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

我测量的一些指标是:

  1. 服务器有多少磁盘空间?
  2. 服务器是否开启? (我可以从我的电脑上ping它)
  3. 特定的Windows服务是否正在运行?
  4. 网络服务器是否可以访问互联网?
  5. 到目前为止,我已经为1-3编写了c#函数。但是,我无法弄清楚如何解决#4。

    基本上,我想确定远程Web服务器是否具有Internet访问权限。我不想只是从我的电脑上ping服务器,因为这不会证明它是否可以访问互联网。

    此网络服务器主要服务于“内联网”网站...所以,我无法通过浏览器在浏览器中提供服务来证明服务器具有互联网。

    任何人都知道如何使用C#来确定此远程Web服务器是否可以访问Internet?

    由于

3 个答案:

答案 0 :(得分:0)

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

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

它不是免费的,但如果你有服务器,你可能会获得某种许可证。它可能比编写自己的东西便宜,而且几乎肯定会更加彻底,强大,并且会有比你自己写的更多的覆盖率。

这可能不是您要找的答案,但请查看。

答案 1 :(得分: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);

答案 2 :(得分:-2)

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

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

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