Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

[DELPHI]Utilizando o MSN Protocol


AceStryker
 Compartilhar

Posts Recomendados

Introdução

 

O protocolo MSN Messenger permite aos desenvolvedores criar sua própria versão do MSN. Existem muitas razões pelas quais você pode querer desenvolver a sua própria versão do Messenger. Poderia ser para fins de organização ou para adicionar mais funcionalidades. Este artigo explica como usar o protocolo Messenger. Este artigo apenas explica como se autenticado. Ele não explica como enviar mensagens entre os usuários.

 

Para conectar MSN

 

A fim de conseguir o login para MSN Messenger que você precisa para obter autenticado. Isso acontece em três fases. Em cada fase, o programa a desenvolver (cliente) envia uma série de comandos para um servidor de MSN. O servidor responde com uma série de comandos, que consistem em uma série de parâmetros. Vamos ter um olhar para as três fases.

 

O Form

 

6yprw8.png

 

Conectando com o servidor

 

A primeira coisa que você precisa fazer é conectar ao servidor de autenticação. O cliente MSN original usa o host messenger.hotmail.com e porta 1863 . O código abaixo usa o TTCPClient(Aba Internet) pacote para se conectar ao host messenger.hotmail.com usando a porta 1863.

 

Coloque o RemoteHost como messenger.hotmail.com

Coloque o RemotePort como 1863

 

É necessário se cadastrar para acessar o conteúdo.

 

Uma vez conectado ao servidor de autenticação que você precisa para enviar o primeiro de muitos comandos para o servidor. Todos os comandos que você envia para o servidor deve incluir um ID de transação. A ID de transação é um número que aumenta de um a cada vez que você enviar um comando para o servidor MSN. A resposta do servidor inclui o ID da transação que foi enviada anteriormente para o servidor. Este é reconhecer que o servidor está respondendo ao comando correto. Vamos começar com o primeiro comando é preciso enviar para o servidor MSN.

O primeiro comando é o comando versão. O cliente (neste caso o seu programa) envia as versões que ela pode suportar para o servidor e aguarda a resposta do servidor. O comando deverá ficar no evento OnConnect ficaria:

 

É necessário se cadastrar para acessar o conteúdo.

 

Depois de enviar o comando precisamos ler a resposta do servidor. Isso é feito usando o seguinte código:

 

É necessário se cadastrar para acessar o conteúdo.

 

Nesta fase, o cliente eo servidor chegaram a acordo sobre uma versão em que eles vão se comunicar. Podemos usar uma caixa de mensagem para exibir a resposta. A resposta deve ser algo como o seguinte:

 

VER 1 MSNP8 CVR0

 

Observe que o servidor respondeu com a identificação da transação mesmo que foi incluído no VER comando.

 

Em seguida, precisamos enviar um CVR comando. A CVR comando envia informações sobre a versão sobre um cliente e sistema operacional para o servidor. O servidor irá responder com informações sobre a versão do cliente que os usuários estão atualmente recomendada para uso. A CVR de comando inclui informações sobre a língua que você fala, o nome ea versão do seu cliente, eo nome e versão do seu OS. A CVR de comando tem um ID de transação e oito parâmetros. Detalhes dos parâmetros estão listados abaixo.

 

O primeiro parâmetro é um número hexadecimal especificando o seu identificador de localidade (por exemplo, " 0x0409 "Para Inglês dos EUA)

O segundo parâmetro é o seu tipo de OS ("por exemplo, win "para Windows)

O terceiro parâmetro é a sua versão do sistema operacional (por exemplo, " 4 . 10 "para Windows 98)

O quarto parâmetro é a arquitetura do seu computador (por exemplo, " i386 "para PCs compatíveis com Intel do tipo 386 ou acima)

O quinto parâmetro é o nome do cliente ("por exemplo MSMSGR "para o oficial cliente MSN Messenger)

O sexto parâmetro é a sua versão do cliente (por exemplo: " 6 . 0 . 0602 ")

O sétimo parâmetro é sempre " MSMSGS "no cliente oficial

O parâmetro oitavo é o seu passaporte.

 

O servidor responderá com uma mensagem como a seguinte:

CVR 2 7.0.0816 7.0.0816 6.2.0208

É necessário se cadastrar para acessar o conteúdo.

4bc83bb2-18dd-486f-943f-332a9b3e01dc/Install_MSN_Messenger_DL.exe

É necessário se cadastrar para acessar o conteúdo.

 

A CVR resposta do servidor inclui cinco parâmetros:

 

O primeiro parâmetro é uma versão recomendada do cliente para que você use, ou " 1 . 0 . 0000 "se a sua informação de cliente não é reconhecido

O segundo parâmetro é idêntico ao primeiro

O terceiro parâmetro é a versão mínima do cliente que é seguro para você usar, ou a versão atual, caso o cliente a informação não é reconhecido

O quarto parâmetro é uma URL para baixar a versão recomendada do cliente

O quinto parâmetro é uma URL onde você pode ir para obter mais informações sobre o cliente

Depois de receber a resposta ao CVR de comando, é preciso enviar um USR comando. A USR comando consiste em três parâmetros:

 

O primeiro parâmetro é o sistema de autenticação que é TWN

O segundo parâmetro é a letra I (Iniciação autenticação)

E, finalmente, o terceiro parâmetro é o nome da conta que você deseja fazer logon com

O servidor irá responder com um XFR . Isso indica que você deve agora ligar para o Notification Server. O endereço IP eo número da porta está incluído na resposta. O código abaixo irá enviar o USR

 

É necessário se cadastrar para acessar o conteúdo.

 

O servidor responderá com uma mensagem como a seguinte:

 

XFR 3 NS 207.46.106.83:1863 0 65.54.239.140:1863

 

Esta mensagem é muito importante, pois indica o endereço IP eo número da porta para se conectar à Notification Server (NS). O endereço IP neste caso é 207 . 46 . 106 . 83 eo número da porta é 1863 . Precisamos extrair esta informação da resposta. O código a seguir irá extrair o endereço IP eo número da porta a partir da resposta.

 

Nota: O endereço IP eo número da porta que se segue após o 0 indica o endereço IP do servidor atual que você está conectado.

 

É necessário se cadastrar para acessar o conteúdo.

 

A variável strNSAddresss agora armazena o endereço IP para o Notification Server ea variável strNSPort contém o número da porta.

 

A primeira fase está concluída. Precisamos avançar para a fase dois. A fase dois é muito semelhante à fase 1. Nós conectamos com o Notification Server novo (NS) usando o endereço IP eo número da porta obtido da primeira fase. Esta fase começa-nos ligados e nos logs usando nossa senha passaporte. Notification Server (NS) contém informações como o nosso estatuto. Ele também nos diz qual dos nossos contatos estão online.

 

Notification Server

 

Nós precisamos criar uma conexão com o Notification Server (NS), utilizando o novo endereço IP eo número da porta obtido da primeira fase. O seguinte código abaixo cria uma conexão com o Notification Server.

Criaremos outro TCPClient e colocaremos as informações que encontramos nele.

 

É necessário se cadastrar para acessar o conteúdo.

 

Agora podemos começar a enviar comandos para o Notification Server (NS). Mais uma vez temos de enviar o VER , CVR e USR comandos. Podemos copiar e colar o mesmo código da primeira fase. O código abaixo irá enviar o VER , CVR e USR comandos para o Notification Server (NS).

 

É necessário se cadastrar para acessar o conteúdo.

 

Agora, na primeira fase, quando chegamos a esta fase dos comandos, o servidor respondeu com um XFR comando que indica que devemos ligar para o Notification Server (NS). Mas desta vez o servidor irá responder com um ChallengeString . No entanto, caso o servidor está ocupado ou está em manutenção, o servidor pode responder com outra XFR comando indicando que você deve se conectar a outro Notification Server (NS). Para este artigo vamos assumir que o servidor respondeu com um ChallengeString .

 

O que você deve receber uma mensagem como a seguinte:

 

USR 6 TWN S lc=1033,id=507,tw=40,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,

ct=1062764229,kpp=1,

kv=5,ver=2.1.0173.1,tpf=43f8a4c8ed940c04e3740be46c4d1619

 

Acima do ChallengeString é destaque em negrito. Precisamos extrair esta ChallengeString . O código abaixo irá extrair o ChallengeString da mensagem:

 

É necessário se cadastrar para acessar o conteúdo.

 

Agora, precisamos gerar o ClientTicket, para isto, precisamos "autentificar" uma pagina da web, que seria:

É necessário se cadastrar para acessar o conteúdo.
.

Para isto, precisamos usar o IdHTTP.Segue abaixo o código.

É necessário se cadastrar para acessar o conteúdo.

 

Depois de gerar o Ticket você precisa enviar um USR comando para o Notification Server, que inclui o Bilhete. O código abaixo irá enviar um USR comando com um bilhete para o Notification Server:

 

É necessário se cadastrar para acessar o conteúdo.

 

Se tudo ocorrer bem, o servidor mandará uma mensagem de OK.

Bom, este foi o nosso tutorial, caso queria aprender a enviar mensagens sugiro procurar informações relacionadas ao Dispatch Server, usar uma API ou me contatar.

 

Creditos:

AceStryker 90%.Usei algumas frases do CodeProject em um dos tópicos em C# deles pois não sabia ao certo como explicar.

Link para o comentário
Compartilhar em outros sites

Perfeito, otimo topico, organizado, dando para enteder perfeitamente, parabens pelo conteudo, muito obrigada por compartilhar, perfect, continue assim, abraço :amor:

"Queridos Edward e Jacob,

Adoro vocês dois, mas vou passar o fim de semana com Jace."

 

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.