elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Duda verificando si tengo internet ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda verificando si tengo internet ?  (Leído 969 veces)
TrashAmbishion


Desconectado Desconectado

Mensajes: 693


Ver Perfil
Duda verificando si tengo internet ?
« en: 22 Enero 2018, 07:34 »

Holas,

Me baje este codigo de internet que funciona muy bien

Código
  1. Public Shared Function CheckForInternetConnection() As Boolean
  2.    Try
  3.        Using client = New WebClient()
  4.            Using stream = client.OpenRead("http://www.google.com")
  5.                Return True
  6.            End Using
  7.        End Using
  8.    Catch
  9.        Return False
  10.    End Try
  11. End Function
  12.  

Mi preocupación es que me ha dado unos falsos positivos en mi Red tengo un portal cautivo me preocupa que al verificar la URL este le devuelva el portal y lo tome como un si en esta función.

Una solución podría ser verificar las cabeceras ¿?

Saludos


« Última modificación: 22 Enero 2018, 07:36 por TrashAmbishion » En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 15.347



Ver Perfil
Re: Duda verificando si tengo internet ?
« Respuesta #1 en: 22 Enero 2018, 07:35 »

lee data de la pagina o lee cabeceras, tienen que coincidir


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
TrashAmbishion


Desconectado Desconectado

Mensajes: 693


Ver Perfil
Re: Duda verificando si tengo internet ?
« Respuesta #2 en: 22 Enero 2018, 07:38 »

Hola,

Menudo susto me haz dado jajaja cuando pense en esa solución y modifique el mensaje fue muy tarde ya me habias respondido....

Jajajaja

Vale buscare algo para leer las cabeceras..

Saludos
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Duda verificando si tengo internet ?
« Respuesta #3 en: 22 Enero 2018, 23:06 »

Deberías comprobar la disponibilidad de tu adaptador, no la disponibilidad de un host (ya sea Google o cual sea)...

Esto lo he sacado de mi framework comercial ElektroKit:

Código
  1. Imports System.Net.NetworkInformation
  2.  
  3. Namespace ElektroKit.Core.NET.Tools
  4.  
  5.    ''' ----------------------------------------------------------------------------------------------------
  6.    ''' <summary>
  7.    ''' Contains networking related utilities.
  8.    ''' </summary>
  9.    ''' ----------------------------------------------------------------------------------------------------
  10.    Public NotInheritable Class NetworkUtil
  11.  
  12.        ''' ----------------------------------------------------------------------------------------------------
  13.        ''' <summary>
  14.        ''' Prevents a default instance of the <see cref="NetworkUtil"/> class from being created.
  15.        ''' </summary>
  16.        ''' ----------------------------------------------------------------------------------------------------
  17.        <DebuggerNonUserCode>
  18.        Private Sub New()
  19.        End Sub
  20.  
  21.        ''' ----------------------------------------------------------------------------------------------------
  22.        ''' <summary>
  23.        ''' Gets a value indicating whether at least one of the current network adapters is capable of connecting to Internet.
  24.        ''' </summary>
  25.        ''' ----------------------------------------------------------------------------------------------------
  26.        ''' <value>
  27.        ''' <see langword="True"/> if at least one of the current network adapters is capable of connecting to Internet;
  28.        ''' otherwise, <see langword="False"/>.
  29.        ''' </value>
  30.        ''' ----------------------------------------------------------------------------------------------------
  31.        Public Shared ReadOnly Property IsNetworkAvailable As Boolean
  32.            <DebuggerStepThrough>
  33.            Get
  34.                Return NetworkUtil.GetNetworkAvailable()
  35.            End Get
  36.        End Property
  37.  
  38.        ''' ----------------------------------------------------------------------------------------------------
  39.        ''' <summary>
  40.        ''' Evaluate the online network adapters to determine if at least one of them is capable of connecting to Internet.
  41.        ''' </summary>
  42.        ''' ----------------------------------------------------------------------------------------------------
  43.        ''' <returns>
  44.        ''' <see langword="True"/> if at least one of the current network adapters is capable of connecting to Internet;
  45.        ''' otherwise, <see langword="False"/>.
  46.        ''' </returns>
  47.        ''' ----------------------------------------------------------------------------------------------------
  48.        <DebuggerStepThrough>
  49.        Private Shared Function GetNetworkAvailable() As Boolean
  50.  
  51.            ' Only recognizes changes related to Internet adapters.
  52.            If NetworkInterface.GetIsNetworkAvailable() Then
  53.  
  54.                ' However, this will include all adapters.
  55.                Dim interfaces As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces()
  56.  
  57.                For Each ni As NetworkInterface In interfaces
  58.  
  59.                    ' Filter so we see only Internet adapters.
  60.                    If ni.OperationalStatus = OperationalStatus.Up Then
  61.  
  62.                        If (ni.NetworkInterfaceType <> NetworkInterfaceType.Tunnel) AndAlso
  63.                           (ni.NetworkInterfaceType <> NetworkInterfaceType.Loopback) Then
  64.  
  65.                            Dim statistics As IPv4InterfaceStatistics = ni.GetIPv4Statistics()
  66.  
  67.                            ' All testing seems to prove that once an interface comes online
  68.                            ' it has already accrued statistics for both received and sent...
  69.                            If (statistics.BytesReceived > 0) AndAlso (statistics.BytesSent > 0) Then
  70.                                Return True
  71.                            End If
  72.  
  73.                        End If
  74.  
  75.                    End If
  76.  
  77.                Next ni
  78.  
  79.            End If
  80.  
  81.            Return False
  82.  
  83.        End Function
  84.  
  85.    End Class
  86.  
  87. End Namespace

Saludos.
En línea


TrashAmbishion


Desconectado Desconectado

Mensajes: 693


Ver Perfil
Re: Duda verificando si tengo internet ?
« Respuesta #4 en: 23 Enero 2018, 00:36 »

Hola Elektro,

Este codigo es para comprobar si hay algun adaptador disponible para conectarse a internet, o me equivoco.

Me quedo con el codigo porque se que me sera útil pero a lo que me referia es al falso positivo que me genera esa función a causa del portal cautivo que tengo en mi Red.

Por eso era que decia de revisar las cabeceras de la URL asi sabria si es el portal o la pagina de google.

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines