Foros del Web » Programación para mayores de 30 ;) » .NET »

VB 2005 - IP introducida es correcta?

Estas en el tema de VB 2005 - IP introducida es correcta? en el foro de .NET en Foros del Web. Hola!! Mas que una pregunta os pongo una solucion! He generado este codigo para mi aplicación y deseo compartirlo con vosotros. Así que espero que ...
  #1 (permalink)  
Antiguo 14/10/2008, 06:29
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
VB 2005 - IP introducida es correcta?

Hola!!
Mas que una pregunta os pongo una solucion!
He generado este codigo para mi aplicación y deseo compartirlo con vosotros.
Así que espero que si encontrais algun error, avance o cualquier otra cosa me aviséis y entre todos haremos que sea más facil.
Código:
    Public Function EsIPCorrecta(ByVal strIP As String) As Boolean
        Dim arrPartes() As String, i As Long, b As Byte
        Dim maxValue, myCont As Integer
        maxValue = 255
        myCont = 0
        If strIP.Length > 15 Then
            EsIPCorrecta = False
        Else
            arrPartes = Split(strIP, ".")
            If arrPartes.Length > 4 Then
                EsIPCorrecta = False
            Else
                For i = LBound(arrPartes) To UBound(arrPartes)
                    Try
                        Dim resultado As Integer
                        resultado = CInt(arrPartes(i))
                        If resultado > maxValue Or resultado < 0 Then
                            MsgBox(arrPartes(i).ToString & " no es un numero entero.", MsgBoxStyle.Exclamation, titleName)
                            EsIPCorrecta = False
                            Exit Function
                        Else
                            myCont = myCont + 1
                        End If
                    Catch ex As Exception
                        MsgBox(arrPartes(i).ToString & " no es un numero entero.", MsgBoxStyle.Exclamation, titleName)
                        EsIPCorrecta = False
                        Exit Function
                    End Try
                Next i
            End If
        End If

        If myCont = 4 Then
            EsIPCorrecta = True
        Else
            EsIPCorrecta = False
        End If
    End Function
Un saludo!!!
  #2 (permalink)  
Antiguo 14/10/2008, 06:38
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: VB 2005 - IP introducida es correcta?

Eso es muy bueno que no te quedes con las ganas de compartir tu codigo para mejora

usando System.Net.IPAddress.TryParse.

public bool IpValida(string addrString)
{
IPAddress address;
return IPAddress.TryParse(addrString, out address);
}

o puedes usar REGEX o tu mismo metodo.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 14/10/2008, 07:02
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: VB 2005 - IP introducida es correcta?

me estas diciendo que el código que me has puesto hace lo mismo que el mio?
jejje
siempre llego tarde a las cosas
  #4 (permalink)  
Antiguo 14/10/2008, 07:06
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: VB 2005 - IP introducida es correcta?

en Basic no me sale la opcion de tryParse, no será pq utilizas c#?
  #5 (permalink)  
Antiguo 14/10/2008, 07:07
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: VB 2005 - IP introducida es correcta?

Debe salir es el mismo framework, buscale

Dim ipString As String
Dim address As IPAddress
Dim returnValue As Boolean

returnValue = IPAddress.TryParse(ipString, _
address)
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #6 (permalink)  
Antiguo 14/10/2008, 07:45
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: VB 2005 - IP introducida es correcta?

Dim address as IPAddress, lo tengo que poner de esta manera
Dim address as Net.IPAddress

y por lo que hace el retorno de la variable
returnValue = IPAddress.TryParse (ipString, address) tengo que ponerlo:
validarIp = Net.IPAddress.TryParse(ipString, address)

Lo que no entiendo es pq declaramos una variable Dim addres as net.Ipaddress
si luego no le ponemos ningun valor?

Finalmente el codigo en Basic quedó así.
Código:
    Function validarIp(ByVal ipString As String) As Boolean
        Dim address As Net.IPAddress
        validarIp = Net.IPAddress.TryParse(ipString, address)
    End Function
Gracias!!!!
  #7 (permalink)  
Antiguo 14/10/2008, 07:48
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: VB 2005 - IP introducida es correcta?

para que la defines es porq si es existoso el formato de entrada debe poner el resultado en alguna variable
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #8 (permalink)  
Antiguo 14/10/2008, 08:03
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: VB 2005 - IP introducida es correcta?

perfecto!
finalmente me quedo con tu codigo a pesar de que me cueste desecharme del mio, jejejeje

Un saludo!!!!
  #9 (permalink)  
Antiguo 14/10/2008, 14:12
 
Fecha de Ingreso: septiembre-2008
Mensajes: 68
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: VB 2005 - IP introducida es correcta?

Saludo colega.

Bueno si con eso querias obtener tu Ip en una variable, con este método lo haces directo:

Dim IPLocal As IPAddress = Dns.Resolve(IPAddress.Any.ToString()).AddressList( 0)


ATTE RealTMegalix

Última edición por megaligathor; 14/10/2008 a las 15:43
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:41.