使用c#检查远程服务器上的互联网连接

本文关键字:互联网 连接 服务器 检查 使用 | 更新日期: 2023-09-27 18:15:17

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

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

  1. 服务器有多少磁盘空间?
  2. 服务器打开了吗?(我可以从我的电脑ping它)
  3. 我期望的特定windows服务正在运行吗?
  4. web服务器是否可以访问internet?
到目前为止,我已经为1-3编写了c#函数。然而,我不知道如何解决#4。

基本上,我想确定远程web服务器是否有互联网访问。我不想从我的电脑上ping服务器,因为这不能证明它是否有互联网访问。

这个web服务器主要服务于一个"内部网"网站…因此,我不能通过简单地在浏览器中访问它所服务的网站来证明服务器有互联网。

有人知道我如何使用c#来确定这个远程web服务器是否有互联网访问吗?

谢谢

使用c#检查远程服务器上的互联网连接

毫无疑问,你可以做所有这些事情,但有工具来管理这类事情和更多。

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

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

这可能不是你想要的答案,但是看看吧。

未经测试,但是像这样:

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);

似乎有人在这里写了一些代码:

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

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