C# 如何识别隔离网络

C# 如何识别隔离网络,c#,.net-3.5,winverifytrust,C#,.net 3.5,Winverifytrust,我正在开发一个c#.Net3.5应用程序 应用程序使用检查文件的签名。问题在于,在隔离的网络上(即没有Internet访问,但机器仍有IP地址),WinVerifyTrust需要很长时间(约20秒)才能返回 是否有办法确定这种情况?以及如何区分计算机是否连接了慢速internet连接 无论如何,你可以Ping谷歌(例如),看看它是否可用。如果计算机没有隔离,它将可用 要从C#ping,只需使用System.Net.NetworkInformation.ping 编辑:如果您需要支持使用代理,那么

我正在开发一个c#.Net3.5应用程序

应用程序使用检查文件的签名。问题在于,在隔离的网络上(即没有Internet访问,但机器仍有IP地址),WinVerifyTrust需要很长时间(约20秒)才能返回


是否有办法确定这种情况?

以及如何区分计算机是否连接了慢速internet连接

无论如何,你可以Ping谷歌(例如),看看它是否可用。如果计算机没有隔离,它将可用

要从C#ping,只需使用System.Net.NetworkInformation.ping


编辑:如果您需要支持使用代理,那么您应该通过google端口80打开一个TCP连接,并检查您是否可以。如果您无法打开谷歌80的端口,您也无法连接到WinVerifyTrust。

您是否尝试过使用
Windows API
-

using System;
using System.Runtime;
using System.Runtime.InteropServices;

    public class InternetCS
    {
        //Creating the extern function...
        [DllImport("wininet.dll")]
        private extern static bool InternetGetConnectedState( out int Description, int ReservedValue );

        //Creating a function that uses the API function...
        public static bool IsConnectedToInternet( )
        {
            int Desc ;
            return InternetGetConnectedState( out Desc, 0 ) ;
        }
    }

你是对的,但是在网络连接缓慢的情况下,我的应用程序运行缓慢是可以的,但在使用隔离网络时则不行。无论我是否连接到internet,我在尝试ping google时都会收到请求超时。你能发布你的代码吗?我在过去已经做过几次了,而且效果很好。你能检查一下你是否也能从命令行ping谷歌吗?@user844541:so?指挥官:)什么??我想可能是防火墙阻止了ping响应。无论如何,我的观点是,即使你有互联网连接,ping也会失败。因此,如果ping失败,还不足以确定您是否连接到internet。