【发布时间】:2011-07-08 09:58:53
【问题描述】:
为了测试我们的计算机是否连接到防火墙,我们检查该防火墙的登录网页是否打开。如果超时,错误处理会说它已连接,如果它打开(或在我们的例子中抛出证书错误)我们知道我们没有连接。
这个过程的最大问题是,每当我们已经连接时,应用程序就会挂起,直到网页超时..
欢迎任何输入,这是我使用的代码:
public static bool FirewallConnectivityStatus(string url)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Proxy = null;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (HttpStatusCode.OK == response.StatusCode)
{
response.Close();
return false;
}
else
{
return true;
}
}
catch (WebException Ex)
{
if (Ex.Status == WebExceptionStatus.TrustFailure)
{
return false;
}
else
{
return true;
}
}
}
更新 与此同时,我发现了一个套接字连接,它可以让我更好地通过 IP 而不是 url 创建这个连接:C# - Socket to log on to Firewall
【问题讨论】: