none
WiFi GPRS RRS feed

  • Pregunta

  • Hola, busco un método, una clase o algo que me permita utilizar programáticamente una conexión GPRS o WiFi según sea el caso en una aplicción para PDA que se conecta a un Web Service. Este puede estar publicado en Internet o en una Red local, la idea es saber si estoy en el área de cobertura de la red local utilizaré WiFi de lo contrario utilizaré GPRS . No importa si la ayuda está en C# o VB.

     

    Gracias por cualquier colaboración. Soy neófito pero conozco ambos lenguajes.

    miércoles, 19 de noviembre de 2008 22:29

Todas las respuestas

  • Hola,

     

    Pues la verdad es que no tengo ni idea de si existe algun sistema concreto que permita hacer esa distinción.

     

    Sin embargo se me ocurre que puedes probar lo siguiente:

     

    Si estas en una red local conectado por Wifi tu dispositivo tendrá un IP de rango local, esto es:

     

  • Clase A: 10.0.0.0 a 10.255.255.255 (8 bits red, 24 bits hosts)
  • Clase B: 172.16.0.0 a 172.31.255.255 (16 bits red, 16 bits hosts)
  • Clase C: 192.168.0.0 a 192.168.255.255 (24 bits red, 8 bits hosts)

     

    Si estas conectado por GPRS la IP de tu dispositivo será una IP publica, o sea un IP cualquiera fuera de estos rangos anteriores.

     

    Espero que esto te sirva.

     

    Un saludo.

     

    Colabora con el foro: Si este mensaje te es de utilidad marcalo como respuesta.

    Javier Conesa

    MCP - Senior Analist

    Web: http://www.moreplus.es/index.aspx


jueves, 20 de noviembre de 2008 7:20
  • Tienes razón y esa es la primera forma que tengo para probar, la encontré googleando y que a mi parecer no es una solución muy católica:estoy utilizando el siguiente método:

     

    Code Snippet

    Dim request As WebRequest = WebRequest.Create("http://192.168.1.100/")

    Dim requestGPRS As WebRequest = WebRequest.Create("http://www.hotmail.com/")

    ' If required by the server, set the credentials.

    request.Credentials = CredentialCache.DefaultCredentials

    ' Get the response.

    Dim response As HttpWebResponse

    Try

    response = CType(request.GetResponse(), HttpWebResponse)

    Catch ex As Exception

    MsgBox("Error : " & ex.Message & vbCrLf & "En WiFi")

    Exit Sub

    End Try

    ' Display the status.

    If response.StatusDescription.ToUpper = "OK" Then

    ' Se conectó por WiFi

    MsgBox(response.StatusDescription & " " & response.ResponseUri.AbsoluteUri)

    Else

    requestGPRS.Credentials = CredentialCache.DefaultCredentials

    Try

    response = CType(requestGPRS.GetResponse(), HttpWebResponse)

    Catch ex As Exception

    MsgBox("Error : " & ex.Message & vbCrLf & "En GPRS")

    Exit Sub

    End Try

    If response.StatusDescription.ToUpper = "OK" Then

    ' Se conectó por GPRS

    MsgBox(response.StatusDescription & " " & response.ResponseUri.AbsoluteUri)

    Else

    MsgBox("No se conecta ni WiFi ni GPRS")

    End If

    End If

    response.Close()

    End Sub

     

     

    Me parece muuy problemático que primero reviso si se conecta o no, pero la conexión ya debe estar activa, corro el riesgo de que no esté activa ninguna conexión y el usuario tenga que levantarla por fuera de la aplicación.

     

    Espero cualquier comentario o ayuda.

    jueves, 20 de noviembre de 2008 16:06