Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: TheWarrior en 29 Agosto 2007, 23:27 pm



Título: enviar datos de visual basic a una pagina web
Publicado por: TheWarrior en 29 Agosto 2007, 23:27 pm
quisiera saber como puedo enviar datos de vb a una pagina web X ejem. tengo caja de texto (Nombre) y que el contenido de esa caja de texto pase www.cualquierpagina.com a una de las casillas de esa pagina.

no se si me explique bien cualquier ayuda sera bienvenida de antemano muchas gracias ;D


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: HaDeS, - en 29 Agosto 2007, 23:39 pm
Queres que los datos se envien al servidor? o simplemente poner los datos en las cajas de texto :P?
Si es la primera me se la respuesta, si es la segunda tendre que buscarla..
saludos ;)


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: TheWarrior en 29 Agosto 2007, 23:45 pm
Es la primera XD


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: HaDeS, - en 29 Agosto 2007, 23:54 pm
ya te doy la respuesta :P estoy elaborando manualcillo xD


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: HaDeS, - en 30 Agosto 2007, 00:56 am
Ya esta:
Bueno, es un rollo interesante, tenemos que conocer muy bien la estructura de una peticion HTTP
primero miremos con el metodo GET y luego con el POST

Metodo GET.
1er paso: Identificar Variables
Entremos a mirar cualquier pagina, en este caso la pagina que valida los html (http://validator.w3.org/) y en esta localizamos en el codigo fuente la parte de los datos del formulario:
Código
  1. <form method="get" action="check">
  2. ...
  3. <label title="Address of page to Validate" for="uri">Address:</label>
  4. <input type="text" name="uri" id="uri" size="45" /> <!-- Variable1 -->
  5. ...
  6. <input type="submit" title="Submit for validation" value="Check" />
  7. </form>
  8.  
Las variables en este caso usadas para la peticion es unicamente una: "uri", y el contenido es la web que queremos validar.
El "Action" define a que pagina se le pasan los parametros, y el "Method" el metodo usado, puede ser GET o POST. En este caso GET.
Cuando hacemos click al boton de Check, lo que pasa es que estas variables son enviadas usando la URL. Queda entonces asi:
http://validator.w3.org/check?uri=http://web

2do paso: Metodo GET en peticiones http
La estructura para enviar datos por metodo get es el siguiente:

Código:
GET /pagina?var1=xxx&var2=xxx HTTP/1.1
Host: Servidor
Connection: close[enter]
[enter]

3er paso: Armando el codigo en visual
Vamos a poner un componente Winsock, dos cajas de texto, dos botones y un timer:
Winsock: Para enviar datos al servidor
Caja1: Contiene variable 1 que se va a pasar por el GET = Multiline a true, para soportar varias lineas
Caja2: Recibe la respuesta del servidor = Propiedad enabled a False
Boton1: Conecta
Boton2: Envia datos
Timer: Para vigilar el estado del winsock = Intervalo a 500 milisegundos

Código
  1. Const Host As String = "validator.w3.org" 'Constante del host
  2. Private Sub Command1_Click()
  3. Winsock1.Connect Host, 80 'Conectamos al host
  4. End Sub
  5.  
  6. Private Sub Command2_Click()
  7. Dim Peticion$
  8. Peticion = "GET /check?uri=http://" & Text2.Text & " HTTP/1.1" & vbCrLf & _ 'Text2.text = A la web que queremos validar .. /check?uri=http://...
  9.            "Host: " & Host & vbCrLf & _
  10.            "Connection: close" & vbCrLf & vbCrLf 'Armamos la peticion segun la estructura que te di
  11. Winsock1.SendData Peticion 'Mandamos la peticion
  12. End Sub
  13.  
  14. Private Sub Timer1_Timer()
  15. If Winsock1.State = sckConnected Then 'Checamos si la conexion es activa o no
  16.    Command1.Enabled = False
  17.    Command2.Enabled = True
  18. Else
  19.    Command1.Enabled = True
  20.    Command2.Enabled = False
  21. End If
  22. End Sub
  23.  
  24. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  25. Dim Datos$
  26. Winsock1.GetData Datos, vbString, bytesTotal 'Obtenemos los datos
  27. Text1.Text = Datos
  28. End Sub
  29.  
  30. 'Si queres grabar la respuesta en un html podes reemplazar lo anterior a
  31. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  32. Dim Datos$, Cabecera, Html$, Canal% 'Declaramos variables
  33. Winsock1.GetData Datos 'Obtenemos datos
  34. Text1.Text = Datos 'Ponemos contenido en la caja de texto
  35. If InStr(1, Datos, vbCrLf & vbCrLf, vbTextCompare) <> 0 And InStr(1, Datos, "HTTP/1.1 200 OK", vbTextCompare) Then 'Si es cabecera de servidor entonces..
  36.    Cabecera = Split(Datos, vbCrLf & vbCrLf, 2) 'Dividimos la respuesta en dos partes, la cabecera y el html
  37.    Html = Cabecera(1) 'El html es la segunda parte, la que es luego de los dos vbCrLf
  38. Else
  39.    Html = Datos 'Sino es cabecera entonces el html son los datos recibidos
  40. End If
  41. Canal = FreeFile
  42. Open App.Path & "\Respuesta.html" For Binary Access Write As Canal 'Abrimos el archivo de respuesta.html en modo binario
  43. Put #Canal, LOF(Canal) + 1, Html 'Escribimos al final del archivo
  44. Close #Canal 'Cerramos canal
  45. End Sub
  46.  

Metodo POST:
1er paso: Identificar variables
Al igual que el anterior caso, vamos a ver una pagina para poder enviar el post, en este caso quiero hacerle post a elhacker.net en un script php que tiene para cifrar cosas :P, nos vamos a http://elhacker.net/sneak.php
En este caso vemos un codigo diferente al anterior:
Código
  1. <form action="/sneak.php" method="post">
  2. ...
  3. <textarea name="text" ... ></textarea>
  4. <select name="cryptmethod">
  5. ...
  6. <option value="md5">MD5 Crypt (one way)</option>
  7. ...
  8. </select>
  9. <input type="submit" name="submit" value="Codificar" />
  10. ...
  11. </form>
  12.  
Ahora, lo enviado es lo que vamos a codificar, probemos con "HaDeS", text=HaDeS
El name cryptmethod es el metodo que vamos a elegir para cifrar el contenido, cryptmethod=md5
Y enviamos igualmente el valor del submit, submit=Codificar
La peticion entonces seria: text=HaDeS&cryptmethod=md5&submit=Codificar

2do paso: Metodo Post en peticiones http
La estructura del metodo post va asi:

Código:
POST /pagina HTTP/1.1
Host: Servidor
Connection: close
Content-Length: Longitud de lo que enviamos[enter]
[enter]
Lo que enviamos

3er paso: Armando el codigo en visual
Vamos a poner el mismo codigo anterior, pero modificando la peticion...
Código
  1. Const Host As String = "validator.w3.org" 'Constante del host
  2. Private Sub Command1_Click()
  3. Winsock1.Connect Host, 80 'Conectamos al host
  4. End Sub
  5.  
  6. Private Sub Command2_Click()
  7. Dim Peticion$, Datos$
  8. Datos = "text=" & Text2.Text & "&cryptmethod=md5&submit=Codificar"
  9. Peticion = "POST /sneak.php HTTP/1.1" & vbCrLf & _
  10.            "Host: " & Host & vbCrLf & _
  11.            "Connection: close" & vbCrLf & _
  12.            "Content-Type: application/x-www-form-urlencoded" & vbCrLf & _
  13.            "Content-Length: " & Len(Datos) & vbCrLf & vbCrLf & _
  14.            Datos
  15. Winsock1.SendData Peticion
  16. End Sub
  17.  
  18. Private Sub Timer1_Timer()
  19. If Winsock1.State = sckConnected Then 'Checamos si la conexion es activa o no
  20.    Command1.Enabled = False
  21.    Command2.Enabled = True
  22. Else
  23.    Command1.Enabled = True
  24.    Command2.Enabled = False
  25. End If
  26. End Sub
  27.  
  28. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  29. Dim Datos$
  30. Winsock1.GetData Datos, vbString, bytesTotal 'Obtenemos los datos
  31. Text1.Text = Datos
  32. End Sub
  33.  
  34. 'Si queres grabar la respuesta en un html podes reemplazar lo anterior a
  35. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  36. Dim Datos$, Cabecera, Html$, Canal% 'Declaramos variables
  37. Winsock1.GetData Datos 'Obtenemos datos
  38. Text1.Text = Datos 'Ponemos contenido en la caja de texto
  39. If InStr(1, Datos, vbCrLf & vbCrLf, vbTextCompare) <> 0 And InStr(1, Datos, "HTTP/1.1 200 OK", vbTextCompare) Then 'Si es cabecera de servidor entonces..
  40.    Cabecera = Split(Datos, vbCrLf & vbCrLf, 2) 'Dividimos la respuesta en dos partes, la cabecera y el html
  41.    Html = Cabecera(1) 'El html es la segunda parte, la que es luego de los dos vbCrLf
  42. Else
  43.    Html = Datos 'Sino es cabecera entonces el html son los datos recibidos
  44. End If
  45. Canal = FreeFile
  46. Open App.Path & "\Respuesta.html" For Binary Access Write As Canal 'Abrimos el archivo de respuesta.html en modo binario
  47. Put #Canal, LOF(Canal) + 1, Html 'Escribimos al final del archivo
  48. Close #Canal 'Cerramos canal
  49. End Sub
  50.  

Y listo, creo que eso es, ya si queres hacer todo automatico con el winsock, podes dividir la respuesta en lineas, analizando cada linea, sacas las variables y el metodo, y aplicas lo de arriba
saludos :P


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: Kizar en 30 Agosto 2007, 03:36 am
Es bastante interesante el protocolo html, las cabeceras y demas, pero sino se quiere complicar que use el control de IE con el que puede rellenar formularios y mandarlos en dos lineas. Busca en este subforo que e puesto algun code.


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: HaDeS, - en 30 Agosto 2007, 04:09 am
Es bastante interesante el protocolo html, las cabeceras y demas, pero sino se quiere complicar que use el control de IE con el que puede rellenar formularios y mandarlos en dos lineas. Busca en este subforo que e puesto algun code.
No es por nada, pero eso que escribiste sono muy mediocre, me parece que la mejor forma de aprender algo es exprimiendolo hasta el fondo, no se trata de coger componentes que ya estan hechos y hacer una simple linea de codigo e indicarle que use tal evento de tal componente. Y no creo tampoco que TheWarrior se interese por cosas simples. Entonces mejor me dicen no vuelvo a hacer manualcillos, porque no voy a estar botando el tiempo como lo hice haciendo eso por personas que solo se interesan por lo facil.

Saludos ;)


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: LeandroA en 30 Agosto 2007, 04:50 am
Estoy completamente deacuerdo con HaDeS, la forma mas profesional de hacer estas cosas es de esta forma, porque? al utilizar las librerias del IE tanto sea por apis wininet o el mismo control webbrowser o el Inet (MSInet.ocx), quizas estas nos puedan simplificar un poco las cosas, pero  estamos perdiendo mucha informacion como ser las cabeseras y  el control de las cosas que pasan de por medio, otra es que quedamos parado hasta que estos controles o apis nos devuelvan una respuesta, tomen como ejemplo un cliente ftp echo con las apis del wininet, como veran nuestro programa se va a ir colgando por cada peticion que se envie, y porque con los programas ftp profecionales no pasa esto? pues por la sencilla razón de que utilizan este metodo (obio no en el protocolo fpt).
y bien muchas otras rasones mas, y si bien muchos dirian pero el control winsock no esta en todas las pc. y los demas si, pues si quieren hacer algo mas profesional aun no dependan de este ocx y utilizen las apis ws2_32.dll



Felizitaciones HaDeS por el Manual

una observacion
creo que esta linea seria mejor asi

If InStr(1, Datos, vbCrLf & vbCrLf) <> 0 And Flag = False Then
Flag =true

puse Flag en el general como una variable boolean porque me a pasado en ocasiones que la cabesera termina de llegar en el segundo paquete entonces esta condicion no se cumpliria And InStr(1, Datos, "HTTP/1.1 200 OK"

Saludos


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: Carloswaldo en 30 Agosto 2007, 05:05 am
Totalmente de acuerdo con HaDeS, - y LeandroA, lo mejor es aprender desde el fondo, yo ya toy analizando el codigo haber que puedo aprender (si apreciamos tu trabajo HaDeS no te preocupes  :P)

c-ya  :P


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: Kizar en 30 Agosto 2007, 16:03 pm
Para aprender desde el fondo, no useis el winsock que es un ocx mas prefabricado.
Para hacer peticiones http usar las apis que os permiten mandar cabeceras, elegir el metodo, cookies, recibir la pagina y demas...
Código:
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function HttpOpenRequest Lib "wininet.dll" Alias "HttpOpenRequestA" (ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal something As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function HttpSendRequest Lib "wininet.dll" Alias "HttpSendRequestA" (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal sOptional As String, ByVal lOptionalLength As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer

http://articulos.conclase.net/jm/prog/cpp/wininethttp_2.html


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: TheWarrior en 30 Agosto 2007, 16:20 pm
Gracias Hades por hacer ese pequeño manual voy a probarlo  :D


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: cark en 31 Agosto 2007, 01:12 am
HaDeS! felicitaciones!!    tu sigue!  yo aprendo!!! je,je
xenon-hades   sigo con mi pinito de visual basic y mi troyanito!!!! agradezco a quien explica por que de esa manera se lo que se! es poco , pero me lo contaron!!!
no discutan que hay gente para todo!!   

KiZaR dio una solución. Se agradece "y a no pelear colegas!! que a mi me interesa lo difícil y lo fácil!!  cuando las cosas son fácil de hacer, ya ..... me llama lo difícil!!  jo justo que me encontré lo difícil apareció!!! ........      ME quedo con lo difícil!! pero que no falte lo fácil que es lo que hace que te desahogues mientras lo logras.
saludos .- cark ;)


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: LeandroA en 31 Agosto 2007, 01:59 am
Para aprender desde el fondo, no useis el winsock que es un ocx mas prefabricado.
Para hacer peticiones http usar las apis que os permiten mandar cabeceras, elegir el metodo, cookies, recibir la pagina y demas...
Código:
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function HttpOpenRequest Lib "wininet.dll" Alias "HttpOpenRequestA" (ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal something As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function HttpSendRequest Lib "wininet.dll" Alias "HttpSendRequestA" (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal sOptional As String, ByVal lOptionalLength As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer

http://articulos.conclase.net/jm/prog/cpp/wininethttp_2.html

Sigo sosteniendo que el api wininet es un simplificador de todo esto, tanto  en el protocolo http como el ftp, no quiero discutir mal por todo esto, es mi punto de vista, esta api es propia del iexplorer, incluso maneja el mismo canche, pero que quede claro que no es la forma nativa de hacer las cosas, esto no ayuda a entender el protoclo solo ayuda a entender a usar el api wininet (no digo que este mal, nunca viene de mas) , pero el tema es que si algun dia quieres hacer un server y no un cliente, no vas a entender como se hace porque solo aprendiste a usar un simplificador y nunca aprendiste el protocolo.

Saludos



Título: Re: enviar datos de visual basic a una pagina web
Publicado por: HaDeS, - en 31 Agosto 2007, 02:02 am
Para aprender desde el fondo, no useis el winsock que es un ocx mas prefabricado.
Para hacer peticiones http usar las apis que os permiten mandar cabeceras, elegir el metodo, cookies, recibir la pagina y demas...
Código:
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function HttpOpenRequest Lib "wininet.dll" Alias "HttpOpenRequestA" (ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal something As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function HttpSendRequest Lib "wininet.dll" Alias "HttpSendRequestA" (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal sOptional As String, ByVal lOptionalLength As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer

http://articulos.conclase.net/jm/prog/cpp/wininethttp_2.html

Sigo sosteniendo que el api wininet es un simplificador de todo esto, tanto  en el protocolo http como el ftp, no quiero discutir mal por todo esto, es mi punto de vista, esta api es propia del iexplorer, incluso maneja el mismo canche, pero que quede claro que no es la forma nativa de hacer las cosas, esto no ayuda a entender el protoclo solo ayuda a entender a usar el api wininet (no digo que este mal, nunca viene de mas) , pero el tema es que si algun dia quieres hacer un server y no un cliente, no vas a entender como se hace porque solo aprendiste a usar un simplificador y nunca aprendiste el protocolo.

Saludos



Esto lo iva a decir pero te adelantaste :P, lo mejor es usar directamente las apis que contiene la libreria wsock32.dll, ya que esta es la que trae por defecto el windows, como lo es recv, Send, setsockopt, getsockopt, entre otras.
Mi intencion era solo mostrar como manejar las cabeceras en las peticiones http. Si hago el ejemplo con las apis de wsock32.dll, quedaria lo mismo sino que con mas codigo :P
saludos y bueno, gracias ;)


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: pablincn en 23 Octubre 2007, 00:41 am
hola a todos quiero saber como puedo pasar o mantener las variable de sesion como el user y passs en el php si cuando ejecuto el winsock se cierra la conexion si alguien me ayuda gracias


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: HaDeS, - en 23 Octubre 2007, 02:25 am
Bueno, es bastante facil, lo que tenes que hacer es coger la sesion que te manda el servidor en la cabecera http, cuando te manda el set-cookie, te manda un identificador que se llama set-cookie: PHPSESSID...
lo que tenes que hacer es declarar una variable globalmente, la sesion la guardas ahi, y cada vez que haces un request a la pagina pones
cookie: PHPSESSID=sesion
mira este codigo que hice:
Código
  1. Private Sub Command1_Click()
  2. cadena = "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  3. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  4. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  5. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  6. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  7. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  8. "set-cookie: PHPSESSID=df018ddc6671e913593517f142e895fc; path=/"
  9.  
  10. headers = Split(cadena, vbCrLf)
  11. For j = 0 To UBound(headers)
  12.    headers2 = Split(headers(j), " ")(0)
  13.    If LCase(headers2) = "set-cookie:" Then
  14.        url = Trim(Replace(headers(j), "set-cookie:", ""))
  15.        url_desglosada = Split(url, ";")
  16.        For i = 0 To UBound(url_desglosada)
  17.            If LCase(Mid(url_desglosada(i), 1, 9)) = "phpsessid" Then
  18.                sesion = Trim(Split(url_desglosada(i), "=")(1))
  19.                GoTo Escape
  20.            End If
  21.        Next i
  22.    End If
  23. Next j
  24. Escape:
  25. MsgBox sesion
  26. End Sub
  27.  
espero te sirva

saludos ;)


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: pablincn en 25 Octubre 2007, 00:30 am
gracias por la ayuda si me sirvio sigue asi


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: pablincn en 20 Marzo 2008, 17:09 pm
que tal quisiera que me ayuden, estoy conectando el winsock a una pagina www.dequito.com pero no conecta, no se que estoy haciendo mal, le conecte con la ip y funciono pero quiero conectar con el dominio

saludos


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: Sancho.Mazorka en 20 Marzo 2008, 19:04 pm
Yo gane el concurso de aplicaciones 2007 del foro, presentando un servidor web, el Xeon Web Server, tiene lo que ustedes necesitan, maneja cabeceras, crea cabeceras, lee PHP (pero no lo interpreta), y funciona como mini servidor casero, para lo que ustedes necesitan es suficiente y espero les sirva.

Link del Concurso: http://foro.elhacker.net/index.php/topic,171903.0.html (http://foro.elhacker.net/index.php/topic,171903.0.html)

Link del Xeon Web Server: http://rapidshare.com/files/45487670/Xeon_Web_Server.zip (http://rapidshare.com/files/45487670/Xeon_Web_Server.zip)

Espero les sirva de ayuda!


Sancho.Mazorka    :¬¬


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: pablincn en 20 Marzo 2008, 20:48 pm
gracias pero no me sivio lo que quiero especificamente es conectarme a una direccion de internet (dominio) o leer el html que genera esa pagina


gracias


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: HaDeS, - en 21 Marzo 2008, 00:56 am
Hmm, probemos:
Código
  1. Private Sub Form_Load()
  2. Dim segViejo&, segNuevo&, Segundos As Byte
  3. segViejo = Int(Timer)
  4. segNuevo = 0
  5. Ws.Connect "www.dequito.com", 80
  6. Segundos = 0
  7. Do
  8.    If segViejo <> segNuevo Then
  9.        segNuevo = segViejo
  10.        Segundos = Segundos + 1
  11.        If Segundos = 5 Then
  12.            MsgBox "Imposible conectar"
  13.            Exit Sub
  14.        End If
  15.    End If
  16.    segViejo = Timer
  17.    DoEvents
  18. Loop Until Ws.State = sckConnected
  19. MsgBox "Conectado con éxito"
  20. End Sub
  21.  
Lo que hace es un loop en el que comprueba si el estado del winsock es conectado, si es conectado muestra el mensaje de que se ha conectado con éxito, y si el estado no es conectado mientras se hace el bucle, comprueba si no han pasado mas de cinco segundos, lo puse arbitrario, porque creo que cinco segundos es mas o menos lo que debe tardar en realizarce la sola conexión, si te sale que es imposible conectarse, y con la página que diste quizas sea un error en una librería de código de tu compu, o reglas del firewall, en fin.
Si te conecta lo que queres decir es que no te está retornando el código html de la página. Para ello nos debemos fijar y seguir el protocolo:
GET /recurso HTTP/1.1
Host: www.dequito.com
Connection: Close

en visual:
Código
  1. Private Sub Form_Load()
  2. Dim segViejo&, segNuevo&, Segundos As Byte
  3. Dim Request$
  4. segViejo = Int(Timer)
  5. segNuevo = 0
  6. Ws.Connect "www.dequito.com", 80
  7. Segundos = 0
  8. Do
  9.    If segViejo <> segNuevo Then
  10.        segNuevo = segViejo
  11.        Segundos = Segundos + 1
  12.        If Segundos = 5 Then
  13.            MsgBox "Imposible conectar"
  14.            Exit Sub
  15.        End If
  16.    End If
  17.    segViejo = Timer
  18.    DoEvents
  19. Loop Until Ws.State = sckConnected
  20.  
  21. Request = "GET /recurso HTTP/1.1" & vbCrLf & _
  22.        "Host: www.dequito.com" & vbCrLf & _
  23.        "Connection: Close" & vbCrLf & vbCrLf
  24. Ws.SendData Request
  25. End Sub
  26.  
Todo el code y eso lo hice sin probar, así que puede que hayan errores, espero que no :P.
Mira haber si eso te sirve, sino es así, hace mucho publique acá un minimanual de este tipo de conexiones, quizas te sirva
Acá el link: http://foro.elhacker.net/index.php/topic,186798.0.html

Saludos


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: gracygracy en 20 Septiembre 2010, 01:32 am
hola, necesito hacer un programa en Visual Basic, que me permita enviar desde una interfaz de usuario datos a un modulo wifi (conociendo su direccion IP). Por lo menos si en la interfaz presiono un boton, se enviara la cadena de caracteres 123456abcdef al modulo wifi, y si presiono otro boton se enviara otra cosa!... Alguien podria ayudarme con esto por favor!!!...


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: BlackZeroX en 20 Septiembre 2010, 06:16 am
.
Que llevas dehcho, nos e hacen trabajos... sin dinero no vaila el perro.

Dulces Luans!¡.


Título: Re: enviar datos de visual basic a una pagina web
Publicado por: Carloswaldo en 20 Septiembre 2010, 06:42 am
Y además se hace un nuevo post, no se abre este tan viejo.