Messenger protocol

Pagina: 1 2 Laatste
Acties:
  • 785 views sinds 30-01-2008
  • Reageer

  • TiG
  • Registratie: Maart 2001
  • Laatst online: 29-06 14:19

TiG

Als je wilt? De code is wel slecht. Heb ik in een paar avondjes gedaan. Hier komt ie:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<?
$online = array();
$offline = array();
$name = 'Unknown';
$email = 'No new e-mail messages';

function send($fp, $command) { 
 fputs($fp, $command . "\n");
 $return = fgets($fp, 2048);
 return $return;
}

function connect($server = 'msgr-ns1.msgr.hotmail.com', $port = '1863') {

 global $username, $password, $online, $offline, $name, $email;

 $fp = fsockopen($server, $port, $errstr, $errno);
    if(!$fp) die("Error $errno: $errstr");

 send($fp, "VER 1 MSNP2");
 send($fp, "INF 2");

 $line = explode(" ", send($fp, "USR 3 MD5 I ". $username));
 if($line[0] == 'XFR' &amp;&amp; $line[2] == 'NS') {
  fclose($fp);
  list($addr,$port) = explode(":", $line[3]);
  connect($addr, $port);
 }
 else {

  $hash = md5(trim($line[4]) . $password);
  $return = explode(" ", send($fp, "USR 4 MD5 S $hash"));
  if($return[0] == '911') die("Jij hebt de verkeerd username en of password ingevuld!");
  $name = $return[4];
  fgets($fp, 2048);
  fgets($fp, 2048);
  fgets($fp, 2048);
  fgets($fp, 2048);
  fgets($fp, 2048);

  $line = send($fp, "LST 5 FL");
  $line = explode(" ", $line);
  while($line[4] != $line[5]) {
   $fl[$line[6]] = array(rawurldecode($line[7]), "FLN");
   $line = explode(" ", fgets($fp, 2048));
  }
  $fl[$line[6]] = array(rawurldecode($line[7]), "FLN");

  send($fp, "CHG 6 HDN");
  $line = send($fp, "CHG 7 FLN");
  $line = explode(" ", $line);
  while($line[1] != '7') {
   if($line[0] == 'ILN')
    $fl[$line[3]] = array(rawurldecode($line[4]), $line[2]);
   else if($line[0] == 'Inbox-Unread:')
    $email = trim($line[1]) . ' new e-mail messages';
   $line = explode(" ", fgets($fp, 2048));
  }

  $fl_val = array_values($fl);
  $fl_key = array_keys($fl);
  for($i=0;$i<count($fl);$i++) {
   if($fl_val[$i][1] == 'FLN') $offline[] = array($fl_val[$i][0], $fl_val[$i][1], $fl_key[$i]);
   else $online[] = array($fl_val[$i][0], $fl_val[$i][1], $fl_key[$i]);
  }

  usort($online, "cmp");
  usort($offline, "cmp");

 }
}

function cmp($a, $b) {
 $a = strtolower($a[0]);
 $b = strtolower($b[0]);
 if($a == $b) return 0;
 return ($a < $b) ? -1 : 1;
}

connect();

?>
<HTML>
<HEAD>
<TITLE>Messenger lijst van <?= $username ?></TITLE>
</HEAD>

<BODY>
[img]"top.gif"[/img]<br>
<TABLE border="0" width="253" height="250" cellpadding="0" cellspacing="0">
<TR>
<TD>[img]"border.gif"[/img]</TD>
<TD>

<DIV id="contactlist" style="width: 241; height: 250; overflow: scroll">
<TABLE border="0"><TR><TD><FONT size="2" face="sans-serif">

[img]"invisible.gif"[/img] <a href="mailto:<?= $username ?>"><?= rawurldecode($name) ?> (Web)</a><br>
[img]"mail.gif"[/img] <a href="http://www.hotmail.com"><?= $email ?></a><br>

<b>Online</b><br>
<?php

foreach($online as $user) {
 if(strlen($user[0]) > 30) { $disuser = substr($user[0], 0, 27); $add = '...'; }
 else { $disuser = $user[0]; $add = ''; }
 if($user[1] == 'BSY' || $user[1] == 'PHN')
  echo "[img]\"busy.gif\"[/img] <a href=\"mailto:$user[2]\"
acronym title=\"".trim($user[0])."\n$user[2]\">".trim($disuser)."</a>$add<br>\n";
 else if($user[1] == 'AWY' || $user[1] == 'IDL' || $user[1] == 'BRB' || $user[1] == 'LUN')
  echo "[img]\"away.gif\"[/img] <a href=\"mailto:$user[2]\"
acronym title=\"".trim($user[0])."\n$user[2]\">".trim($disuser)."</a>$add<br>\n";
 else
  echo "[img]\"online.gif\"[/img] <a href=\"mailto:$user[2]\"
acronym title=\"".trim($user[0])."\n$user[2]\">".trim($disuser)."</a>$add<br>\n";
}

?>
<b>Not Online</b><br>
<?php

foreach($offline as $user) {
 if(strlen($user[0]) > 30) { $disuser = substr($user[0], 0, 27); $add = '...'; }
 else { $disuser = $user[0]; $add = ''; }
 echo "[img]\"offline.gif\"[/img] <a href=\"mailto:$user[2]\"
acronym title=\"".trim($user[0])."\n$user[2]\">".trim($disuser)."</a>$add<br>\n";
}

?>
</FONT></TD></TR></TABLE>
</DIV>

</TD>
<TD>[img]"border.gif"[/img]</TD>
</TR>
</TABLE>
<a href="http://iglo.dediepvries.com" target="_blank">[img]"bottom.gif"[/img]</a>
</BODY>
</HTML>
?>

U gaat door voor de retorische vraag...


  • rb338
  • Registratie: Januari 2001
  • Laatst online: 22-07 12:59
Ik schop 'm ff omhoog want ik heb weer een vraagje ;)

M'n MSN voor mIRC is al best aardig, de standaard dingen (inloggen en chatten) werken al best goed. Nu kan ik alleen niet vinden hoe je met protocol v5 een user moet toevoegen/wissen in je lijst.

Iemand een idee?

Btw, hier een shotje van de (nu nog ultra-simpele) dialogs van mijn clientje:

Afbeeldingslocatie: http://files.rb-338.com/pics/msn2.jpg

  • TiG
  • Registratie: Maart 2001
  • Laatst online: 29-06 14:19

TiG

Hoe kom jij aan de andere specifikaties van protocol v5 dan? Ik ben tot nu toe alleen v2 op het internet tegen gekomen.

Word is tijd dat die jongens van Microsoft ook de rest van de wereld verteld hoe b.v. v3 in elkaar zit. We zitten nu al sinds 99 op v2...

U gaat door voor de retorische vraag...


  • rb338
  • Registratie: Januari 2001
  • Laatst online: 22-07 12:59
Op donderdag 19 juli 2001 00:18 schreef TiG het volgende:
Hoe kom jij aan de andere specifikaties van protocol v5 dan? Ik ben tot nu toe alleen v2 op het internet tegen gekomen.

Word is tijd dat die jongens van Microsoft ook de rest van de wereld verteld hoe b.v. v3 in elkaar zit. We zitten nu al sinds 99 op v2...
Hier:

http://www.geocities.com/venky_dude/msn.htm

Staat ook eerder in deze thread :) 't Zijn niet echt de officiele specs, maar er staat prima uitgelegd hoe je kan inloggen en chatten :)

En ik heb in de specificaties gevonden hoe je users kan adden:

stuur naar de server: ADD TrID LIST UserHandle CustomUserName

Waar TrID het nummer van het commando is (1 werkt prima), LIST is de lijst is waar je iemand op wil zetten (normaal gesproken FL, maar BL kan ook, da's je block list), UserHandle is het email adres van de persoon en CustomUserName mag je zelf weten, maar kan je net zo goed nog een keer het email adres gebruiken.

Verwijderd

Hey,
Bestaat er ook een Delphi code die we mogen in zien ??? >:)

  • TiG
  • Registratie: Maart 2001
  • Laatst online: 29-06 14:19

TiG

rb338: Ik heb die pagina die jij mij gaf bekeken. Maar ik zie geen verschil tussen hoe zij praten met de server en de manier hoe het moet volgens v2. Waarschijnlijk kent de schrijver van die page ook v5 niet. Maar heeft hij ontdekt dat de basis dingen in v5 hetzelfde zijn als in v2 en dus zegt hij maar tegen de server dat hij v5 of v4 gebruikt. Ik vind dit echter niet verstandig. Stel de server stuurt jou een command waar jij niks van snapt maar wat wel v5 is. De server verwacht dan een response van een command waar jij niks mee kan. Ik zou dus aanraden om v2 te gebruiken omdat daarvan WEL de volledige specifikaties beschikbaar zijn.

MSNP2 kun je vinden op http://www.cs.berkeley.edu/~mikechen/im/protocols/msn/draft-movva-msn-messenger-protocol-00.txt

U gaat door voor de retorische vraag...


  • rb338
  • Registratie: Januari 2001
  • Laatst online: 22-07 12:59
Op donderdag 19 juli 2001 13:34 schreef TiG het volgende:
rb338: Ik heb die pagina die jij mij gaf bekeken. Maar ik zie geen verschil tussen hoe zij praten met de server en de manier hoe het moet volgens v2. Waarschijnlijk kent de schrijver van die page ook v5 niet. Maar heeft hij ontdekt dat de basis dingen in v5 hetzelfde zijn als in v2 en dus zegt hij maar tegen de server dat hij v5 of v4 gebruikt. Ik vind dit echter niet verstandig. Stel de server stuurt jou een command waar jij niks van snapt maar wat wel v5 is. De server verwacht dan een response van een command waar jij niks mee kan. Ik zou dus aanraden om v2 te gebruiken omdat daarvan WEL de volledige specifikaties beschikbaar zijn.

MSNP2 kun je vinden op http://www.cs.berkeley.edu/~mikechen/im/protocols/msn/draft-movva-msn-messenger-protocol-00.txt
Tnx voor de info. Kzal die v2 specs eens uitprinten :)

[edit]
Dat is trouwens zelfs v1...maar goed er zal wel weinig veranderd zijn ;)

Verwijderd

Echt niemand ? :(

Verwijderd

Stil........................................

  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 05-06 07:37
Op donderdag 19 juli 2001 21:18 schreef StephanPHP het volgende:
Stil........................................
* razor-x vind dit irritant ............................

Verwijderd

en ik dat niemand wat zegt :)

  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 05-06 07:37
Op donderdag 19 juli 2001 23:32 schreef StephanPHP het volgende:
en ik dat niemand wat zegt :)
Dat kan maar 1 ding betekenen ..........

  • rb338
  • Registratie: Januari 2001
  • Laatst online: 22-07 12:59
Op donderdag 19 juli 2001 23:32 schreef StephanPHP het volgende:
en ik dat niemand wat zegt :)
Ik heb liever dat niemand wat zegt als dat iedereen 'Nee' zegt...

Verwijderd

Lekkere mensen lopen hier rond...
Ik zoek wel andere mensen die normaal zijn

  • rb338
  • Registratie: Januari 2001
  • Laatst online: 22-07 12:59
Op vrijdag 20 juli 2001 00:59 schreef StephanPHP het volgende:
Lekkere mensen lopen hier rond...
Ik zoek wel andere mensen die normaal zijn
Pardon?

Als er niemand een MSN in Delphi heeft geschreven waardoor jij toevallig niet geholpen kan worden zijn wij ineens allemaal niet meer normaal?

Dan ga inderdaad maar liever ergens anders zoeken :r

Verwijderd

Jullie kunnen geen normaal antwoord geven dat is het probleem

  • rb338
  • Registratie: Januari 2001
  • Laatst online: 22-07 12:59
Op vrijdag 20 juli 2001 02:05 schreef StephanPHP het volgende:
Jullie kunnen geen normaal antwoord geven dat is het probleem
Hallo?

Jij wacht nieteens tot iemand een reply geeft, jij gaat meteen de topic omhoog schoppen. Als er dan wordt verteld waarom niemand iets zegt (logisch, omdat niemand Delphi code heeft waar je om vraagt) en jij vindt dat geen normaal antwoord, dan weet ik het ook niet meer hoor.

Een beetje geduld en begrip is toch niet te veel gevraagd? Sorry hoor maar je moet echt eens ff teruglezen wat je allemaal hebt getypt en goed nadenken ofzo...

Verwijderd

:( Na een hoop geziek over het omhoogschoppen van dit topic blijf ik huilend achter met het scriptje van TiG dat maar blijft komen met:
Fatal error: Maximum execution time of 30 seconds exceeded in c:\inetpub\wwwroot\segunda\messenger\msn_interface.php on line 61
|:(
Zal wel een stomme PHP newbie zijn maar ik krijg het niet aan de praat maar nou lees ik in [topic=172406] dat TiG in een eerder stadium dezelfde foutmelding had.

'So I used the search and remain clueless' >:)

Heeft er nog iemand suggesties of is er nog nieuws over de PHP versie ?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

ik weet hoe dat komt

je moet hem aanroepen met een form
PHP:
1
2
3
4
5
6
7
8
<?
echo"<font face='arial' size='2'>Registration";
echo"</center><form name=\"log\" action=\"jemsnfiletje.php\">";
echo"<input type=\"text\" name=\"username\"> Username <font color=red> *</font><br>";
echo"<br><input type=\"password\" name=\"password\"> Password<font color=red> *</font><br> ";
echo"<br><input type=\"submit\">";
echo"</form>";
?>

dan werkt ie wel

en evt in je php.ini de execution time ophogen van 30 naaar 60 seconden

<edit>
bijna vergeten
StephanPHP je ben irritant bezig :(

Doet iets met Cloud (MS/IBM)


Verwijderd

Geplaatst door D2k - vrijdag 20 juli 2001 10:42

--------------------------------------------------------------------------------
ik weet hoe dat komt
je moet hem aanroepen met een form

php:
.....
;) Dat snapte ik al; toch bedankt voor de tip, <schaam>ik had username en password velden verkeerd,</schaam>.....

Verwijderd

<continued schaam mode>
TiG's scriptwerkje doet 'ut prachtig !
Ik was aan het KLOOIEN...
</continued schaam mode>

  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 05-06 07:37
Op vrijdag 20 juli 2001 02:05 schreef StephanPHP het volgende:
Jullie kunnen geen normaal antwoord geven dat is het probleem
hehe,!?
Normaal antwoord? , euhm

Ga zoeken man!

Tip voor jou:
Stop met programmeren en ga iets lekkers doen

Verwijderd

Jullie willen geen Newbies helpen in Delphi dat is het probleem met jullie...
en hou maar dat gezeur

  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 05-06 07:37
Op vrijdag 20 juli 2001 19:59 schreef StephanPHP het volgende:
Jullie willen geen Newbies helpen in Delphi dat is het probleem met jullie...
en hou maar dat gezeur
Het probleem met ons is dat wij het irritant vinden als iemand niet gezocht heeft en dan het topic'je omhoog zit te schopen!
en dat hij dan nog verwacht dat wij een delphi code voor die gene gaat bakken.,

Maakt mij echt niet uit of hij 20 posts heeft of 20.000 ,.

[alles vergeten modus]
a) Waar heb je gezocht?
b) Wat heb je gevonden?
c) Waar loop je vast?
d) Wat wil je ?
[/alles vergeten modus]

  • Johannes Verelst
  • Registratie: Februari 2001
  • Laatst online: 14-11-2022
Op 't moment zijn er volgens mij erg veel mensen bezig met eigen projectjes (ik was zelf ook al begonnen, maar vanwege tijdgebrek ben ik niet verder gekomen dan inloggen).

Het lijkt me een goed idee om hier een beetje structuur in te brengen, zodat niet iedereen langs elkaar heen aan het coden is (maarja, dat hoeft natuurlijk niet te betekenen dat jullie er ook zo over denken :) )

Ik heb webruimte, mailinglists, etc. dus als iemand dit ziet zitten dan:
- maak ik een mailinglist aan
- verzamel ik alle hier geposte documentatie op 1 pagina
- kan iedereen me code toesturen (liefst Open Source :) ) die ik op de webpage plaats.

Een sourceforge project opstarten is ook een idee natuurlijk ...
(zie m'n signature om me te spreken)

There are no stupid questions, but there are a lot of inquisitive idiots.


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

zoek ok sourceforge maar eens op wasp-messenger ;)

Verwijderd

Ik wil gewoon weten hoe maak je connectie..
daar loop ik vast..
Jah met WinSock..
maar waar is die te vinden ?
Daar loop ik vast...
de rest zoek ik zelf wel uit

Verwijderd

FF beetje reclame:

MSN Messenger Spy

  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 05-06 07:37
Op woensdag 25 juli 2001 00:20 schreef mgfun het volgende:
FF beetje reclame:

MSN Messenger Spy
Wat niet mag !! ;(
Waarom nou,..

Verwijderd

achja... noem het een richtingsbordje naar mijn topic :) is wel handig voor de mensen op dit topic toch ?

  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 05-06 07:37
richtingsbordje = spam
Read FAQ please ! , spam, sitechecks, richtings bordjes, mag niet!

/edit naja mischien wel handig ja :)

  • rjsomeone
  • Registratie: Juli 2001
  • Laatst online: 20-11-2023

rjsomeone

a.k.a. Tuslsh

Ik ben bezig in VB een MSN kloon te schrijven, alleen nu heb ik het volgende probleem:

Als iemand mij een download wil sturen(wat dus eigenlijk betekent dat ik 'm download bij diegene via het MSN FTP protocol) dan krijg ik wel het bestand binnen, maar de grootte komt nooit helemaal overeen met het originele bestand, soms is het bestand dan ook corrupt.
Ik weet zeker dat ik de juiste informatie ontvang, maar als ik dit bijvoorbeeld stuur(dit is maar 'n stukje van het hele bestand):
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
onvang ik dit(ook maar een klein stukje van het hele bestand): ýaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Weet iemand of en zo ja hoe dit gecodeerd is en ze nee, hoe ik hier anders het origineel uit kan halen?

p.s. ý zijn niet altijd de zelfde tekens en wordt in het hele ontvangen bestand vaak herhaald.

Hier had uw advertentie kunnen staan :).


  • Bigs
  • Registratie: Mei 2000
  • Niet online
Op vrijdag 20 juli 2001 21:10 schreef wasigh het volgende:
zoek ok sourceforge maar eens op wasp-messenger ;)
Wasp ;(

* Bigs is inmiddels ook maar eens wat gaan proberen (in Delphi) maar krijgt om de een of andere reden steeds 911's
Het protocol is wel lekker simpel. Mijn bedoeling is om uiteindelijk een console-client a la micq te gaan maken :) (die mis ik namelijk nog).


[edit]
En net nadat ik het post heb ik het gevonden :) Mijn string-tokenizer nam perongeluk de newline mee.
Alleen krijg ik niet de verwachte OK msg, maar een commando MSG Hotmail Hotmail 368 en daarna 207 4 waarna de server disconnect, maar dat zoeken we wel uit ;)

[edit2]
Onee, zag de ok msg gewoon over het hoofd (door een foutje in mijn programma waardoor die daarna meteen weer de MD5 stuurde)

  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 14:28

johnwoo

3S-GTE

*Kick*

Wel een interessant topic dit :) Ik ben zelf ook aan een MSN client begonnen, in VB, met ingebouwde bot. Download:
De client
De source code (nog niet helemaal up-to-date, deze is nog zonder de bots)

Er zitten nu 2 bots in: een WinampBot, waarmee andere mensen kunnen vragen welk liedje jij speelt, en optioneel ook je Winamp kunnen bedienen, en een tweakers.net tracker bot, die op aanvraag de laatste headline teruggeeft :)
Deze bots zijn nu nog in VB geimplementeerd, maar ik ben nu bezig om ze gescript te doen zodat makkelijk nieuwe dingen zijn toe te voegen :)
Daarnaast zit er een uitgebreide autoresponder in, waarin je zelfs variabelen kunt gebruiken :) (je kunt zelfs een random regeltje uit een textfile terug laten sturen :) )

Tot slot nog een vraagje: heeft iemand fatsoenlijke documentatie, of een voorbeeldimplementatie, van de filetransfers? Die zat namelijk niet in dat sample projectje van venkydude (wat is dat trouwens slecht leesbaar geprogd, niet ingesprongen en alle code in één event handler gepropt).

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


Verwijderd

ik ben ook bezig, maar geeft niemand een uitleg over protocol v5 ?? die gast met axis msn, die gebruikt protocol v5, waar heb je die vandaan??

heeft iemand al een delphi project gemaakt,. dus een delphi msn ?? ik ben nog bezig, met de inlog procedure enz, maar zal wel eens willen zien hoe je je status kan veranderen enz enz enz , en hoe je weet als je de lijst krijgt, of ie online of offline is,

maja, we horen het wel, veel succes allemaal met jullie msn klonen!! ;)
Pagina: 1 2 Laatste