C#如果我使用此wi-fi连接但未登录,请检查互联网连接

C#如果我使用此wi-fi连接但未登录,请检查互联网连接,c#,C#,这里有一个wi-fi连接,在传输数据之前,它需要自己的登录凭据。如果我使用此wi-fi连接但未登录。我想检查一下网络连接# 我尝试了下面链接中提到的所有这些方法,但没有任何效果。 您的程序可能需要internet连接才能连接到某个地方的远程服务器。如果是这样的话,我就不会太担心你是如何联系的,唯一重要的是你是如何联系的 这里最简单的解决方案可能是向该服务器发送ping,看看它是否可以连接 类似这样的话(从我的一份申请中转述): 根据失败的原因,Ping将抛出异常或返回false,因此这将同时考虑

这里有一个wi-fi连接,在传输数据之前,它需要自己的登录凭据。如果我使用此wi-fi连接但未登录。我想检查一下网络连接#

我尝试了下面链接中提到的所有这些方法,但没有任何效果。

您的程序可能需要internet连接才能连接到某个地方的远程服务器。如果是这样的话,我就不会太担心你是如何联系的,唯一重要的是你是如何联系的

这里最简单的解决方案可能是向该服务器发送ping,看看它是否可以连接

类似这样的话(从我的一份申请中转述):


根据失败的原因,Ping将抛出异常或返回false,因此这将同时考虑两个可能的选项。

您好,请详细说明您想要做什么?是否要检查您是否可以通过该WIFI连接连接到internet,是否需要进行身份验证?请解释。是的,我想检查我的互联网连接。如果我没有输入凭据,网络连接将在我的任务栏中显示“受限”。在这种情况下,我想处理这个问题,并使用c代码向用户显示“Internet连接失败。请检查连接并重试”。@KingCronus此语句“pr=ping.Send(“,5000)”无论Internet连接是否良好,它都会将pingError=true和pr始终为null。@user3076123,我可以向您保证它不会。我已经在生产环境中运行了它。您确定您可以直接访问internet,并且没有某种代理阻碍吗?下面的代码正在运行,但pingreply.status始终为“成功”,即使在连接有限的情况下使用wificonnection:(Ping myPing=new Ping();String host=“google.com”;byte[]buffer=new byte[32];int timeout=1000;PingOptions PingOptions=new PingOptions();PingReply reply=myPing.Send(主机、超时、缓冲区、PingOptions);if(reply.Status==IPStatus.Success){return true;}如果您尝试在PC上ping Google而不使用此选项(即从命令提示符),会发生什么情况?在我的机器中,ping始终有效,这是我的问题。当我在浏览器中导航该页面时,它将不起作用。我相信,围绕ping概念的解决方案在我的情况下不会起作用
Ping ping = new Ping();
PingReply pr = null;
bool pingError = false;
try
{
    pr = ping.Send("http://myservername.fake", 5000);
}
catch
{
    pingError = true;
}
finally
{
    /* Short-curcuit here, because pr.Status might still be 
     null if no network connectivity at all. */

    if (pingError || pr.Status != IPStatus.Success)
    {
        // Here we know we are offline
    }
    else
    {
        // Here we know we are online
    }
}