• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

zeroonnet

[VB 6] Enviar informação e receber de um site

41 mensagens neste tópico

Boas, tipo eu queria fazer um programa em que eu mete-se o meu mail e a minha password e ele os coloca-se neste site: blockstatus.com/msn/delete-checker e depois numa listbox ele me disse-se os emails como diz depois no site só que nao sei como se faz, se houvesse um toturial a explicar como se faz coisas assim parecidas era fixe :D

ajudem-me sff :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não confiava muito em coisas que peçam a password do meu mail, mas pronto.

Tendo em conta que o site não deve disponibilizar nenhuma interface para fazer isso, a unica forma que vejo de o fazer é simular uma navegação, e colectar dados.

Fazer um POST com algumas linhas de código e depois filtrar a resposta com regex.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

esquecime de mencionar que sou iniciante nisto... e nao percebi nada do que disseste se for possivel arranjares-me um toturial sobre isto eu agradecia :D

fiquem bem :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que ele quis dizer é que tens de fazer como um browser faz para conseguíres fazer isso que queres  :D

Pora acaso também gostava de saber como se pode fazer isso, tenho uma ideia de como pode ser mas como não estou muito dentro desse mundo dos sites e bases de dados, etc não sei bem como pode ser feito...

P.S.

Não sei se este é o local mais indicado para colocares uma questão  :D

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não sei se te vou conseguir arranjar tutoriais para uma coisa destas!

O objectivo é que o teu programa simule a navegação que fazes num browser.

Olha ve isto http://abstractvb.com/code.asp?A=948

Apanhei com um google "VB6 post".

Para conseguires saberes os dados que tens de enviar no teu HTTP Post, provavelmente teras de instalar um capturador de pacotes de rede. Apanhar os dados enviados para o servidor em um exemplo que fizeres.

Programa para fazer isso será http://www.ethereal.com/

 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

1º se tiver num sitio errado peço desculpa

2º vou por o que ja fiz ate agr e tb por o code como esta no mirc pois eu tinha aqui um code do que quero fazer mas em mircscripting

Dim Website As String
Private Sub Command1_Click()
sock.Close
sock.Connect "www.blockstatus.com", "80"
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub sock_Connect()
sock.SendData "POST /msn/delete-checker HTTP/1.1" & vbCrLf
sock.SendData "Host: www.blockstatus.com" & vbCrLf
sock.SendData "Content-Type: application/x-www-form-urlencoded; charset=utf-8" & vbCrLf
sock.SendData "Cache-Control: no-cache" & vbCrLf
sock.SendData "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" & vbCrLf
sock.SendData "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*" & vbCrLf
sock.SendData "Referer: http://www.blockstatus.com/msn/delete-checker" & vbCrLf
sock.SendData "Accept-Language: tr" & vbCrLf
sock.SendData "Accept-Encoding: gzip, deflate" & vbCrLf
sock.SendData "Connection: Keep-Alive" & vbCrLf
sock.SendData "passport=MEUEMAIL&password=MINHAPASSWORD&submit=Check" & vbCrLf
End Sub

Private Sub Sock_DataArrival(ByVal bytesTotal As Long)
Dim Data As String
ESTA PARTE E QUE JA NAO SEI :S e nao sei se em cima ta bem :S e não sei se em cima esta por ordem
End Sub

Script no mirc:

on *:dialog:mdec:sclick:*: {
  if ($did == 6) {
    if ($did(6).sel == 2) {
      if (!$did(3)) return $input(Type your msn address please!,ohud,Error)
      elseif (!$did(5)) return $input(Type your password of msn adress,ohud,Error)
      else {
        did -r $dname 8
        did -ra $dname 16 Checking.Please wait...
        if ($sock(msndc)) sockclose msndc
        set %acc $did(3)
        set %account $+(passport=,%acc,&,password=,$did(5),&submit=Check) 
        sockopen msndc www.blockstatus.com 80
        did -i $dname 8 1 headertext + 0 Nick $+ $chr(9) $+ + 0 Address
      }
    }
    $iif($did(6).sel == 4,.timer 1 0 dialog -x $dname $dname)
  }
}

on *:sockopen:msndc: {
  if ($sockerr) echo -a No Connection!
  else {
    var %s = sockwrite -n $sockname
    %s POST /msn/delete-checker HTTP/1.1
    %s Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
    %s Referer: http://www.blockstatus.com/msn/delete-checker
    %s Accept-Language: tr
    %s Accept-Encoding: gzip, deflate
    %s User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
    %s Content-Type: application/x-www-form-urlencoded; charset="utf-8"
    %s Content-Length: $calc($len(%account) + 1)
    %s Host: www.blockstatus.com
    %s Connection: Keep-Alive
    %s Cache-Control: no-cache
    %s
    %s %account
  }
}

alias -l htmlfree { 
  if ($len($1-) <= 900) { 
    var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, ,$chr(9)) 
    return %x
  }
} 
on *:sockread:msndc: {
  sockread %mdata
  if (*<b>MSN ID:</b>*  iswm %mdata) && (%acc isin %mdata) && (Error !isin %mdata) && ($dialog(mdec)) {
    did -i mdec 8 1 headertext + 0 $+(Nick,$chr(32),$chr(40),Total:,$remove($gettok(%mdata,3,32),<b>,<br>,</b>,</br>,%acc),$chr(32),persons,$chr(41)) $+ $chr(9) $+ + 0 Address
    did -ra mdec 16 Listed all persons...!
  }
  if (Invalid isin %mdata) && ($dialog(mdec)) && (passport isin %mdata) { did -ra mdec 16 Msn address or password is wrong...! | sockclose msndc }
  if ((width="150" isin %mdata) && (Email !isin %mdata)) set %address $htmlfree(%mdata)
  if (width="250" isin %mdata) && (NickName !isin %mdata) && ($dialog(mdec)) did -a mdec 8 1 1 $htmlfree(%mdata) $+ $chr(9) $+ 2 %address
}
alias -l check->files {
  echo -a Missing File. $+(",4,$1,") Copy file to $+(",4,$scriptdir,") folder.
  echo -a Addon unloaded.
  .unload -rs $shortfn($script)
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não percebi nada do programa mas se no do mirc o POST tem so aquilo no VB tb no sera preciso mais o protolo do http e igual para tudo i think :D

sera que me podes ajduar na parte do data arrival? de modo a eu listar os mails numa list box.

tipo vai ao site e faz com o teu mail se quizeres para veres melhor o que estou a falar

o site e de confiança nao vos fica com passwords nenhumas ja existe a anos...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O primeiro teste que tens de fazer, é apresentar o resultado sem qualquer filtro. Numa text box por exemplo.

Mete isso a funcionar, que depois posso-te ajudar a filtrar os dados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

consegui mostrar o source code da pagina acho que e isso que preciso... so que tipo :S ele nao me faz o login e eu pux as cenas mais ou menos tipo o do mirc :S aqui vai o code:

Dim e As String
Private Sub Command1_Click()
sock.Close
sock.Connect "www.blockstatus.com", "80"
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub sock_Connect()
sock.SendData "POST /msn/delete-checker HTTP/1.1" & vbCrLf
sock.SendData "Host: www.blockstatus.com" & vbCrLf
sock.SendData "Content-Type: application/x-www-form-urlencoded; charset=utf-8" & vbCrLf
sock.SendData "Cache-Control: no-cache" & vbCrLf
sock.SendData "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" & vbCrLf
sock.SendData "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*" & vbCrLf
sock.SendData "Referer: http://www.blockstatus.com/msn/delete-checker" & vbCrLf
sock.SendData "Accept-Language: tr" & vbCrLf
sock.SendData "Accept-Encoding: gzip, deflate" & vbCrLf
sock.SendData "Connection: Keep-Alive" & vbCrLf
sock.SendData "" & vbCrLf
sock.SendData "passport=MEUMAIL&password=MINHAPASSWORD&submit=Check" & vbCrLf & vbCrLf
End Sub

Private Sub Sock_DataArrival(ByVal bytesTotal As Long)
Dim d As String
sock.GetData d
e = e & d
Text3.Text = e
End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi... conseguiste que o programa te apresentasse o html?

Vas precisar das ferramentas que te apresentei para fazeres debug do código. Sem isso não te safas.

Mostra ai o resultado que o programa lançou.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tipo o programa mostrou o codigo fonte do site so que tipo eu antes na parte do SendData tenho la para ele fazer o LOGIN com o meu MAIL e a minha PASSWORD so que ele nao faz o login pux alguma coisa mal e antes de fazer a parte da listbox preciso de resolver a parte do login primeiro.... se fores ao site e fizeres login percebes melhor o que tou a falar :D

Fiquem bem :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tive a tentar mais cenas mas nao consigo fazer o login sabes qual e o erro?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ná... não vou por a minha pass nesse site.

Mas não preciso de o fazer para perceber.

Aparece algo do genero né?

MSN ID: dfhg@gigi

Error: Invalid User or Password

Lá está... tens de comparar os dados enviados pelo teu programa, com um login real e com sucesso.

Consegues fazer isso com o Ethereal.

Pode estar a faltar uma linha tipo:

Cookie: PHPSESSID=8019c0e0b711f311223a5d6f26ad2644; flashInstalled=9.0  r16; ym_pop_freq_expiration87051=Tue, 21 Nov 2006 00:07:53 GMT; ym_pop_freq87051=1

E para obteres a variavel PHPSESSID terás de fazer um GET á página primeiro.

Mas antes disso verifica o pormenor seguinte, o @ deverá ser substituido por %40

Deixo o POST que o Ethereal apanhou para uma conta falsa:

POST /msn/delete-checker HTTP/1.1

Host: www.blockstatus.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3

Accept-Encoding: gzip,deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

Referer: http://www.blockstatus.com/msn/delete-checker

Cookie: PHPSESSID=8019c0e0b711f311223a5d6f26ad2644; flashInstalled=9.0  r16; ym_pop_freq_expiration87051=Tue, 21 Nov 2006 00:07:53 GMT; ym_pop_freq87051=1

Content-Type: application/x-www-form-urlencoded

Content-Length: 58

passport=mytest%40test.com&password=testpass&submit=Submit

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

substitui o @ pelo %40 mas tipo sabes-me dizer o que esta mal no meu codigo para ele nao fazer o login? sff

comparando com o do mirc eu acho que esta bem mas pelos vistos não :S

e isso do PHPSESSID não percebi como heide fazer :S

podes-me ajudar? :D

Fiquem bem

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tive a ver outras cenas e criei uma proxy no meu pc e fui ao site e deu isto:

09-12-2006 12:48:05 Connection Request: 127.0.0.1
POST http://www.blockstatus.com/msn/delete-checker HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://www.blockstatus.com/msn/delete-checker
Accept-Language: pt
Content-Type: application/x-www-form-urlencoded
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Host: www.blockstatus.com
Content-Length: 68
Pragma: no-cache
Cookie: PHPSESSID=5b562f4c69f96da50748aae635bd9643; flashInstalled=9.0; ym_pop_freq_expiration87051=Sun, 10 Dec 2006 12:34:12 UTC; ym_pop_freq87051=1

passport=meumail@mail.net&password=minhapassword&submit=Submit

e tipo eu tenho tudo como ta no meu code excepto a parte do Cookie :S alguem me sabe dizer como meto isso?!?

code:

Dim e As String
Private Sub Command1_Click()
sock.Close
sock.Connect "www.blockstatus.com", "80"
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub sock_Connect()
sock.GetData ""
sock.SendData "POST /msn/delete-checker HTTP/1.1" & vbCrLf
sock.SendData "Host: www.blockstatus.com" & vbCrLf
sock.SendData "Content-Type: application/x-www-form-urlencoded; charset=utf-8" & vbCrLf
sock.SendData "Cache-Control: no-cache" & vbCrLf
sock.SendData "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" & vbCrLf
sock.SendData "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*" & vbCrLf
sock.SendData "Referer: http://www.blockstatus.com/msn/delete-checker" & vbCrLf
sock.SendData "Accept-Language: tr" & vbCrLf
sock.SendData "Accept-Encoding: gzip, deflate" & vbCrLf
sock.SendData "Connection: Keep-Alive" & vbCrLf
sock.SendData "" & vbCrLf
sock.SendData "passport=hey%40mekie.net&password=passwordddd&submit=Check" & vbCrLf & vbCrLf
End Sub

Private Sub Sock_DataArrival(ByVal bytesTotal As Long)
Dim d As String
sock.GetData d
e = e & d
Text3.Text = e
End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Faz primeiro um GET:

GET /msn/delete-checker HTTP/1.1

Host: blockstatus.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3

Accept-Encoding: gzip,deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

Vaz receber uma resposta que deve conter:

Set-Cookie: PHPSESSID=7e57808ce7cf6051227b433f008fa746; path=/

Usa esse valor nos teus proximos pedidos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

epa pondo isso dame no codigo fonte HTTP/1.1 400 Bad Request :X

e tb nao percebi nada do que disseste:

Vaz receber uma resposta que deve conter:

Set-Cookie: PHPSESSID=7e57808ce7cf6051227b433f008fa746; path=/

Usa esse valor nos teus proximos pedidos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não pode dar 400.

cuidado com o copy paste.

Este forum interpreta o valor (oito e parentises esquerdo) em 8) , e depois vai colocar cool

Estas opções não deviam estar activas num forum de programação...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

epa eu sou iniciante... e tipo eu tentei de diferentes formas tudo send data e o outro get data e de outra forma tudo senddata e aquele senddata "get..."

so que ele da sempre erro :x e quando meto getdata ( nao sei se e pa por isso mas eu tentei ) ele nem da erro nem nada da umas m**** kk de html :S

epa se for possivel dizeres como e que o code tem de ficar mesmo agradecia :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É html que tem de dar...

Já olhaste sequer para o resultado?

Mete ai o resultado html.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiz um teste com o wfetch e correu bem.

E se fizeres copy paste sem fazer a substituição daquilo que te falei dá o erro 400.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja consegui por e nao me da erro mas isso nao me resolveu a parte de nao conseguir fazer login :S sabes dizer como faço?!?

o code ficou assim:

Private Sub sock_Connect()
sock.SendData "GET /msn/delete-checker HTTP/1.1" & vbCrLf
sock.SendData "Host: blockstatus.com" & vbCrLf
sock.SendData "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8" & vbCrLf
sock.SendData "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" & vbCrLf
sock.SendData "Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3" & vbCrLf
sock.SendData "Accept-Encoding: gzip,deflate" & vbCrLf
sock.SendData "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" & vbCrLf
sock.SendData "Keep-Alive: 300" & vbCrLf
sock.SendData "Connection: keep-alive" & vbCrLf
sock.SendData "Set-Cookie: PHPSESSID=7e57808ce7cf6051227b433f008fa746; path=/" & vbCrLf & vbCrLf

no code de mirc ele faz isto: passport=mail@mail.net&password=minhapassword&submit=check

so que eu ja tentei fazer: sock.SendData "passport=mail@mail.net&password=minhapassword&submit=check" e dame bad request :S como é que faço?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O Set-Cookie é o server que tem de te mandar. Não é o teu código que manda.

Com a insistência acabei por usar a minha conta. E deu resultado. Até me desligou o msn.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

continuei sem perceber... ou seja apago a linha da cookie e que mais? eu nao consigo fazer o login na mesma :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora