如何识别隔离网络

时间:2012-10-24 07:05:46

标签: c# .net-3.5 winverifytrust

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

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

有没有办法确定这种情况?

2 个答案:

答案 0 :(得分:2)

您是否尝试过使用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 ) ;
        }
    }

答案 1 :(得分:1)

如果计算机连接的是慢速互联网连接,您将如何区分?

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

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

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