我正在開發一個c#.Net3.5應用程序。如何識別隔離網絡
應用程序使用WinVerifyTrust檢查文件的簽名。問題是,在隔離網絡上(即沒有互聯網訪問但機器仍然有IP地址),WinVerifyTrust返回之前需要很長時間(約20秒)。
有沒有辦法找出這種情況?
我正在開發一個c#.Net3.5應用程序。如何識別隔離網絡
應用程序使用WinVerifyTrust檢查文件的簽名。問題是,在隔離網絡上(即沒有互聯網訪問但機器仍然有IP地址),WinVerifyTrust返回之前需要很長時間(約20秒)。
有沒有辦法找出這種情況?
如果計算機連接的網絡速度較慢,您將如何區分?
無論如何,你可以Ping谷歌(例如),看看它是否可用。如果電腦沒有被隔離,它將可用。
從C#ping通只是用System.Net.NetworkInformation.Ping
編輯:如果你需要支持是後面的代理,那麼你應該打開一個TcpConnection在谷歌80端口和檢查,如果你能或者你不能。如果你無法打開一個端口到谷歌的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) ;
}
}
我試過了,但它在孤立網絡上返回true。 – user844541
你是正確的,但在速度較慢的網絡連接它是確定我的應用程序會慢慢工作,但是當使用隔離的網絡不是這樣的。 – user844541
無論我是否連接到互聯網,在嘗試ping Google時都會收到請求超時。 – user844541
你可以發佈你的代碼嗎?過去我已經做了好幾次,並且它很有效。你可以檢查你是否可以從命令行ping Google? –