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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Hacer un GET con sockets en lugar de usar "microsoft.xmlhttp"
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Hacer un GET con sockets en lugar de usar "microsoft.xmlhttp"  (Leído 812 veces)
OfTheVara

Desconectado Desconectado

Mensajes: 46


Ver Perfil
Hacer un GET con sockets en lugar de usar "microsoft.xmlhttp"
« en: 17 Febrero 2024, 14:52 pm »

Buenas,

Para actualizar la IP en no-ip.com mediante XML uso el objeto "microsoft.xmlhttp" con el siguiente código, el cual funciona correctamente.

  Set XMLhttp = CreateObject("microsoft.xmlhttp")

  'Url = "http://dynupdate.no-ip.com/dns?username=Pepito" & "&password=MyPass"  & "&hostname=MyHostName"
   
  XMLhttp.Open "get", Url, False
  XMLhttp.SetRequestHeader "Pragma", "no-cache"
  XMLhttp.SetRequestHeader "Cache-control", "no-cache"


Ahora bién, me gustaría hacer eso mismo pero usando un socket. Entiendo que primero debo conectarme a la dirección del servidor en el puerto 80:

  Winsock.Close
  Winsock.RemoteHost = "dynupdate.no-ip.com"
  Winsock.RemotePort = 80
  Winsock.Connect


Y luego enviar un string con toda la retahíla

  Winsock.SendData Peticion

¿cómo sería ese string Peticion en base al código que he puesto arriba?

gracias



En línea

TickTack


Desconectado Desconectado

Mensajes: 428


CipherX


Ver Perfil
Re: Hacer un GET con sockets en lugar de usar "microsoft.xmlhttp"
« Respuesta #1 en: 17 Febrero 2024, 18:47 pm »

Necesitas formar manualmente la solicitud HTTP.

Código:
Dim Peticion As String

' Construir la solicitud HTTP
Peticion = "GET /dns?username=Pepito&password=MyPass&hostname=MyHostName HTTP/1.1" & vbCrLf
Peticion = Peticion & "Host: dynupdate.no-ip.com" & vbCrLf
Peticion = Peticion & "Connection: close" & vbCrLf
Peticion = Peticion & vbCrLf ' Fin de los encabezados

' Conectar y enviar la solicitud
Winsock.Close
Winsock.RemoteHost = "dynupdate.no-ip.com"
Winsock.RemotePort = 80
Winsock.Connect
Winsock.SendData Peticion

Tenés que reemplazar "Pepito", "MyPass" y "MyHostName" con tus credenciales y nombre de host adecuados. Además, esta solicitud está configurada para cerrar la conexión después de recibir la respuesta del servidor. Si necesitas manejar la respuesta del servidor, deberás configurar eventos en el control Winsock para recibir los datos de respuesta y procesarlos adecuadamente.


En línea

OfTheVara

Desconectado Desconectado

Mensajes: 46


Ver Perfil
Re: Hacer un GET con sockets en lugar de usar "microsoft.xmlhttp"
« Respuesta #2 en: 17 Febrero 2024, 23:45 pm »

Necesitas formar manualmente la solicitud HTTP.

Código:
Dim Peticion As String

' Construir la solicitud HTTP
Peticion = "GET /dns?username=Pepito&password=MyPass&hostname=MyHostName HTTP/1.1" & vbCrLf
Peticion = Peticion & "Host: dynupdate.no-ip.com" & vbCrLf
Peticion = Peticion & "Connection: close" & vbCrLf
Peticion = Peticion & vbCrLf ' Fin de los encabezados

' Conectar y enviar la solicitud
Winsock.Close
Winsock.RemoteHost = "dynupdate.no-ip.com"
Winsock.RemotePort = 80
Winsock.Connect
Winsock.SendData Peticion

Tenés que reemplazar "Pepito", "MyPass" y "MyHostName" con tus credenciales y nombre de host adecuados. Además, esta solicitud está configurada para cerrar la conexión después de recibir la respuesta del servidor. Si necesitas manejar la respuesta del servidor, deberás configurar eventos en el control Winsock para recibir los datos de respuesta y procesarlos adecuadamente.

Mil gracias. Funiona!!  :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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