Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Freeze. en 4 Agosto 2007, 11:49 am



Título: [Ayuda]Web Server
Publicado por: Freeze. en 4 Agosto 2007, 11:49 am
Hola ya tengo un web Server montado...

el problema esta aqui:

Código:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Winsock1.GetData datos
Select Case Left(datos, 3)
Case "GET"
Dim n_File As Integer
Dim File As String
Dim Contenido As String
n_File = FreeFile
[b]File = "C:\AppServ\www\Nueva Web\index.htm"[/b]
Open File For Input As n_File
pro = Input$(LOF(n_File), #n_File)
Close n_File
Winsock1.SendData pro
End Select
End Sub

Que alli selecciono un solo archivo y al darle a un link en la web me sigue saliendo ese archivo..

¿Que hago?

Salu2..!! ::)


Título: Re: [Ayuda]Web Server
Publicado por: Hendrix en 4 Agosto 2007, 11:53 am
 :o :o Puedes explicarlo mejor?? La verdad es que no entiendo nada.... :-\ :-\


Título: Re: [Ayuda]Web Server
Publicado por: Freeze. en 4 Agosto 2007, 11:58 am
Es como lo del Xeon Web Server O el Apache o cualquier servidor web...

Pero lo que pasa es que yo en una parte del code teng que leer la web que yo le mandare al Cliente (Protocolo Http) y le mando el contenido del index...

Cuando abro la web y le doy a otro link me sigue dando el index y no el otro link


Título: Re: [Ayuda]Web Server
Publicado por: Hendrix en 4 Agosto 2007, 12:13 pm
Lo que tienes que hacer es leer toda la petición que te hace el explorador (Firefox por ejemplo). Este te pasa la pagina que el usuario quiere ver, tu lo analizas y se la pasas. Asi de facil  :)

PD: Al rezibir eso filtra el contenido de la petizión.....no vaya a ser que te mande lo siguiente:

GET C:\Archivos de Programa\documentosecreto.txt HTTP/1.0

Y tu se lo mantes...xDDDD



Título: Re: [Ayuda]Web Server
Publicado por: Freeze. en 4 Agosto 2007, 12:30 pm
Aun no entiendo explicate mejor... Por favor


Título: Re: [Ayuda]Web Server
Publicado por: Hendrix en 4 Agosto 2007, 12:31 pm
sabes el protoclolo HTTP??? :huh:

Si lo sabes entenderas lo que te dije  ;)



Título: Re: [Ayuda]Web Server
Publicado por: Freeze. en 4 Agosto 2007, 12:33 pm
Código:
A veces me manda este:
[code]
GET / HTTP/1.1
Accept: */*
Accept-Language: es
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MEGAUPLOAD 2.0; .NET CLR 2.0.50727)
Host: MI IP
Connection: Keep-Alive

O este:

Código:
GET /imagenes/banner.jpg HTTP/1.1
Accept: */*
Referer: http://201.249.106.36/
Accept-Language: es
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MEGAUPLOAD 2.0; .NET CLR 2.0.50727)
Host: MI IP
Connection: Keep-Alive

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje. [/code]

Si lo se el error es que quiere ver es una imagen -.- mejor dicho me cuesta usar Left y Split aunque lo se usar pero no se que pasa ahora.. :xD


Título: Re: [Ayuda]Web Server
Publicado por: Freeze. en 4 Agosto 2007, 12:43 pm
Te entiendo pero la primera vez me manda VACIO un GET vacio que quieres que haga en esos casos -.-

Osea es dificil usar Split y Left cuando los resultados no son siempre los mismos..
Mientras estoy intentando pero si tienes solucion mas efectiva,......

NO DUDES en avisarme jejej


Título: Re: [Ayuda]Web Server
Publicado por: Freeze. en 4 Agosto 2007, 13:16 pm
Bueno ya tengo esto:

Código:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Winsock1.GetData datos
Text2.Text = datos
Select Case Left(datos, 3)
Case "GET"
n_File = FreeFile
File = "C:\appserv\www\Nueva Web"
FileO = "C:\AppServ\www\Nueva Web\index.htm"
Open FileO For Input As n_File
cont = Input$(LOF(n_File), #n_File)
Close n_File
Winsock1.SendData cont
File1 = Split(Text2.Text, " ")
File2 = File1(1)
File3 = File & Replace(File1(1), "/", "\")
Text3.Text = File3
End Select
End Sub

Con ese codigo logro colocar en un Textbox (text3) la ruta que me esta pidiendo el cliente...

Pero cuando le agrego Open File3 y bla bla bla me sale que File3 es esto : "/" osea es raro.. :P

Salu2..!!


Título: Re: [Ayuda]Web Server
Publicado por: LeandroA en 4 Agosto 2007, 13:41 pm
hola lo que te manda es  la Cabesera de la peticion, la cabesera es divida del cuertpo por dos saltos de carro (vbcrlf), entonces tu tienes que verificar este salto de carro para  saver que termino la cabesera

mira

en el general declaras
Dim Data as string

Código:
Private Sub WS_DataArrival(ByVal bytesTotal As Long)
Dim Dato as string


WS.GetData Dato

Data = Data & Dato


If InStr(Data, vbCrLf & vbCrLf) Then 'significa que termino la cabesera

Ret = InStr(Data, "GET /")
If Ret Then
FileRequest = Mid(Data, 6, InStr(Data, "HTTP/1.1" & vbCrLf) - 7)

    If FileRequest = "" Then
        FileRequest = App.Path & "\Index.html"
    Else
        'tu sabras que mandas
    End If
End If

end if

como ves almaceno la variable Dato en Data porque puede que la cabesera no llegue 
entera de una sola ves, y si no lo haces se te arma un quilombo

te paso una aplicacion que hice, pero bueno cuando la hice no savia estas cosas y lo deje asi, pero te va a ayudar mucho. vas a encontrar muchas funciones que te van a servir para resolver como cambiar la url por un archivo de tu pc

http://www.recursosvisualbasic.com.ar/htm/utilidades-codigo-fuente/server-at-leandro.htm



Título: Re: [Ayuda]Web Server
Publicado por: Freeze. en 4 Agosto 2007, 13:44 pm
Es buenisimo... Voy a revisar... Ya que hendrix me dejo aqui solo -.- :xD :xD :xD

EDITO: La verdad no entiendo pero ya mismo sigo intentando..  :xD

Gracias...


Título: Re: [Ayuda]Web Server
Publicado por: Tengu en 4 Agosto 2007, 18:08 pm
Te recomiendo ese code del ServerAT de LeandroA esta muy completo y a mi me ha servido mucho


Título: Re: [Ayuda]Web Server
Publicado por: ~~ en 4 Agosto 2007, 18:15 pm
Te aconsejo este tuto para q aclares algunos conceptos:
http://www.fpress.com/revista/Num0701/art.htm