5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

MSNメッセンジャーのクライアント作った人いる?

1 :デフォルトの名無しさん:01/11/19 16:20
MSNメッセンジャーのプロトコルおよびAPIが公開されてるので、オリジナルの
クライアントを作ってみませんか?
たとえば次のような機能を備えていると便利かと思われます。

  ・ 話しかけられたら、クライアントが自動的に会話をする。
  ・ メールが届いたら勝手に返信する。
  ・ ときどきランダムでオンラインメンバーに話しかけたりする。


開発言語: C++ | Visual Basic | Java

2 :デフォルトの名無しさん:01/11/19 16:38
・ ときどきランダムでオンラインメンバーに話しかけたりする

非常に迷惑じゃありませんか?

3 :デフォルトの名無しさん:01/11/19 16:43
ていうか、メッセンジャーは横着するためのツールではない。
そんなに居るフリしたいのか?>>1

4 :デフォルトの名無しさん:01/11/19 16:44
>>1
仕様を日本語に訳してください。

5 :デフォルトの名無しさん:01/11/19 16:45
MSNメッセンジャーのクライアント作った人いる?

作った人いる?なのに開発環境を限定するのはおかしい。

6 :デフォルトの名無しさん:01/11/19 16:53
>>1 には「作ってみませんか?」とあるけど。

7 :デフォルトの名無しさん:01/11/19 17:10
必要なら>>1が作れ。

8 :デフォルトの名無しさん:01/11/19 18:35
メッセンジャーのボットか。実験としては面白いかも。

9 :デフォルトの名無しさん:01/11/19 19:47
おとしたけどでてくるサンプルがVB... 萎え

10 :デフォルトの名無しさん:01/11/19 20:52
Java対応は嬉しいかも。
どっか、Linux 用のがあったぞ。Googleで検索せい。

11 : :01/11/19 23:05
http://www.venkydude.com/articles/msn.htm

VBのサンプルならここにあるぞ。
でも俺の環境では動かない気がするのは気のせいか…?

12 :デフォルトの名無しさん:01/11/19 23:06
プロトコルの仕様なんてどこにあんお?

13 : :01/11/19 23:12
>>12
↓ これだと思われ。
http://www.tlsecurity.net/Textware/Misc/draft-movva-msn-messenger-protocol-00.txt

14 :デフォルトの名無しさん:01/11/19 23:16
>>8
ボットのメッセンジャー同士が会話したりするのかな、、、
たしかに、おもしろそうではある。

15 :デフォルトの名無しさん:01/11/19 23:54
>>14
お互いの辞書を同期するだけで、会話自体はかなり退屈になりそう…

出来るだけ多くの人間と会話させれば、ログためこんで統計的に
返事を決定するだけでも、けっこうましな人工無能になりそうな予感。

16 :1:01/11/20 01:08
「MSNメッセンジャーで人工無能千体計画」 スレッドに変更になりました

17 :デフォルトの名無しさん :01/11/20 08:15
.NET My Serviceが始まってた
https://www.netmyservicesmanager.com/

で、それの開発用ドキュメントとツールがここに
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/messenger/messenger_entry.asp
早く.NET用のライブラリが出ないかな

18 :デフォルトの名無しさん:01/11/20 11:09
プロトコル分かる人いる?

http://msn-transport.sourceforge.net/messenger-protocol.txt

7.8 List Modifications

The protocol also supports the concept of an ADD or REM that the
client did not initiate. Server generated ADDs and REMs can have
LIST values of FL/AL/BL/RL. This is common with RL changes, which
are never initiated by the client, but is an indirect consequence of
this user having been added to someone's Forward List. If the RL
change happens while the user is online, it will trigger an
asynchronous ADD or REM command from the server.

ってあるけどasynchronous ADD/REMコマンドなんて送られてこないわけさ。
RLに追加されたことをリアルタイムで検知するには、
GTCかBLPを正しく設定する必要あり?
もしくはRLとAL/BLをポーリングして、差集合に対してADD/REMすればいい?

誰か教えて。

19 :デフォルトの名無しさん:01/11/20 12:19
http://messenger.microsoft.com/for_developers/default.asp

20 :デフォルトの名無しさん:01/11/20 13:46
Messenger Plus! Extension http://www.patchou.com/msgplus/

みたいなプラグイン(?)ってどうやって作ればいいの?
上の仕様書には載っていないような…
誰か知ってる人いたら教えてくださいな。

21 :デフォルトの名無しさん:01/11/20 16:02
>>19
いや、MSのフレームワークを使う方法ではなくて。
自分でフレームワーク作っているんだよ。説明不足でごめん。
いまのところポーリングさせているんだけど、MSNMessengerもポーリング?
教えて、偉い人!

22 :デフォルトの名無しさん:01/11/20 16:36
Javaでつくったのがあるよ

23 :デフォルトの名無しさん:01/11/20 16:50
関連age

鈴木直美の「Windows Messenger使用記」

http://www.watch.impress.co.jp/pc/docs/article/20011120/wm.htm

24 :デフォルトの名無しさん:01/11/20 18:02
>>23
面白い記事をありがと。
この中でUPnPっていうのを紹介してたけど、
これってルーターをiptablesに限定すれば
サーバープログラムをちょこっと書いただけで
似たようなことできるんじゃない?

もしくはこんな大掛かりなものを作るつもりか
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsrvspec/html/wsroutspecindex.asp

25 :デフォルトの名無しさん:01/11/20 18:41
>>22
そうだね、ほかの実装のソース見ればよかった。ありがと。

26 :デフォルトの名無しさん:01/11/21 00:01
age

27 :デフォルトの名無しさん:01/11/21 15:34
22の言ってるのはこれ? http://msn-transport.sourceforge.net/

28 :デフォルトの名無しさん:01/11/21 16:03
>>1 みたいな面白くも何とも無い発想よりも、

メッセンジャー同士が戦うとか、
メッセンジャー同士でユーザーが戦えるとか、
エンターテイメント的発想を求む。

個人的にはガキがそれで遊べるような代物を作れば商売成立。

29 :デフォルトの名無しさん:01/11/21 16:07
メッセンジャーバトラー

30 :デフォルトの名無しさん:01/11/22 01:50
自動で応答するなら
1 がいなくても MSN クライアントさえいれば良くなるな、と思った。

31 :デフォルトの名無しさん:01/11/22 13:04
フレームワーク実装したのだが、ほかに作ったやつはいないか?

32 :デフォルトの名無しさん:01/11/22 13:06
>>31
それ、くれ。

33 :デフォルトの名無しさん:01/11/22 13:12
プロトコールなんてパケットダンプすりゃ手にとるように分かるだろうが。

34 :デフォルトの名無しさん:01/11/22 13:17
>>33
どやーるの?

35 :デフォルトの名無しさん:01/11/22 13:27
>>33
だからIETFで公開されているって〜の。よく読め。
http://msn-transport.sourceforge.net/messenger-protocol.txt

36 :デフォルトの名無しさん:01/11/22 22:44
プロトコルの仕様書だが3時間ほど読めば実装のとりかかりには十分。
実装は言語によるけど10時間でとりあえず動くのができた。

興味のある奴やってみれば?思いのほか、簡単。

ただ、非同期のリクエスト/レスポンスを処理しなきゃいけないから、
スレッドが使える言語がいいよ。あと当然ソケットね。

37 :デフォルトの名無しさん:01/11/22 23:05
和訳してくれるだけで、それだけであなたを崇拝します。

38 :デフォルトの名無しさん:01/11/23 21:16
>>4 >>37 必要な奴が自分でやれ

39 :デフォルトの名無しさん:01/11/24 08:33
>>38
車輪の再発明に似てる気がしない?

40 :デフォルトの名無しさん:01/11/24 23:26
>>39
38の意味は、「和訳しないと読めないような奴は自分で辞書ひいて和訳しろ」

41 :デフォルトの名無しさん:01/11/24 23:42
>>40
あ。。。何を思ってたんだか。まったくもってそのとーり。

42 :デフォルトの名無しさん:01/11/27 19:30
では >>41 が和訳してアップしてくれるのをマターリまつなり

43 :デフォルトの名無しさん:01/11/27 20:00
そうだそうだ。 >>42
自分のために和訳したやつは、それをついでにageてくれると嬉しいぞ。

44 :デフォルトの名無しさん:01/11/27 20:16
>>43
自分のために和訳できるようなヤツなら、英語のまま読むぞ。
何でわざわざ翻訳なんて面倒なマネをしなきゃならんのだ。
英語のわからん厨房はちゃんと授業に出ろよ。引きこもってないで。

45 :ちょっと翻訳してみた:01/11/27 20:33
気になった部分だけ...

8.7 Instant Messages

Instant Messageをおくる

 いったん、クライアントとクライアント間のセッションを Switchboard Server によって確立すると、それらの間でのセッションは次のように行われる:

C: MSG TrID [U | N | A] Length\r\nMessage
S: NAK TrID
S: ACK TrID

U, N, A はそれぞれ Unacknowledged, Negative-Acknowledgement-Only, and Acknowledgement の delivery acknowledgement modes に対応する。
この値により(あるいは未指定にすることにより)、NAK か ACK が Switchboard Server から client に送られる。

Unacknowledged modeの場合、Switchboard Server はメッセージが無事届けられたかどうか、送信クライアントに返信しない。

Negative-Acknowledgement-Only modeの場合、Switchboard Server はメッセージが受信クライアントに届かなかった場合のみ、送信クライアントに返信する。

Acknowledgement mode はインプリメントされていない。

Length は Message パラメータの byte 数である。
Message は以下に記述されるような実際のメッセージである。



8.8 Receiving an Instant Message

クライアントは Notification Server から system-generated message を受け取る。あるいは、それは Switchboard Server によって別のクライアントから instant message を受け取る。メッセージは次のフォーマットで受信される:

S: MSG UserHandle FriendlyName Length\r\nMessage

UserHandle および FriendlyName は送信ユーザのもの。Length は Message パラメータの byte 数である。

Message は MIME でエンコードされた stream で、RFC-1521 と RFC-822 で規定された標準的な MIME-Header をもつ。

Message は次のように構成される:

MIME-Header\r\nMIME-Header\r\n\r\nMessageData

MIME-Header は次のように構成される:

string": "string
(E.g. "Content-Type: text/plain")

現在のクライアントが使用し認識する MIME-Header は次のとおり:

"text/plain;charset=UTF-8"
"text/plain"

"charset=UTF-8" がヘッダーの終わりに現われる場合、Message Data は UTF-8 でエンコードされている。

Note: Switchboard Server はメッセージの内容を解釈( interpret )しない。

46 :親切な人:01/11/27 20:36

ヤフーオークションで、凄い人気商品、発見!!!

コピーガードキャンセラー↓
http://page2.auctions.yahoo.co.jp/jp/auction/b18032656

注目のオークションに適用される事、
間違いないですね。

私も買いました。

皆も買いましょう。

47 :ちょっと翻訳してみた:01/11/27 21:09
サーバーについて。訳に自信なし

4. MSN Messenger Server Component Overview

MSN Messenger Service clients クライアントは、いくつかの異なる種類のサーバーへの接続を行ないます。
それらは大規模化を促進する個別のコンポーネントで、大量のユーザーを処理するために、任意の回数、任意の数だけ複写することができます。

4.1 Dispatch Server (DS)

Dispatch Server サーバーはコネクションの initial point です。
その主な機能はプロトコル・バージョン交渉、どの Notification Server (NS) にクライアントを結びつけるかの決定 (サーバーがアルゴリズムを決定する)、そしてクライアントを適切な NS に紹介することです。


4.2 Notification Server (NS)

Notification Server は主要なサーバー・コンポーネントです。
Notification Server は認証し、プロパティーを同期させ、asynchronous event を交換します。
Notification Serverへの接続は、Dispatch Server から紹介が完了したに起こり、ユーザーの MSN Messenger Service sessionの中断なしに続きます。

クライアントと通知サーバーの間で送信されるイベントは次のようなものがあります:
ステータスの変更(例えば、クライアントはオン・ラインです、クライアントはオフラインです、クライアントは使用されていません)、Switchboard Server の招待リクエスト(以下を参照)、およびこのドキュメントの範囲外の特殊な通知(例えば、新しい電子メールは到着しました。)


4.3 Switchboard Server (SS)

Switchboard Server はクライアントがクライアントとの direct network connection を必要とせずに、軽量のコミュニケーション・セッションを送ることができるコンポーネントです。
Switchboard Server の一般的な使用法は instant message を送るセッションを提供することです。
クライアントが別のクライアントと通信したい場合、Notification Server のもとへメッセージを送ります(その後、送信クライアントを Switchboard Server に委託する)。
一旦 Switchboard Server 接続が確立されれば、「目的地」クライアントは、同じSSに接続するように自分の Notification Server から、通知を受け取ります。

48 :ちょっと翻訳してみた:01/11/27 21:33
>>44
中途半端な英語力なんで、だれかが訂正や続きを翻訳してくれることを
期待してあげてみたのである

つか MirandaICQの MSN plug-in をだれか日本語対応にしてくれや

49 :ちょっと翻訳してみた:01/11/27 21:35
上の翻訳はこれね
http://www.tlsecurity.net/Textware/Misc/draft-movva-msn-messenger-protocol-00.txt

...
Document Expires: 2/00
ってもう賞味期限切れかよ! 鬱

50 :デフォルトの名無しさん:01/11/27 21:41
英語資料の和訳スレでも立てる?

51 :デフォルトの名無しさん:01/11/28 11:35
>>45 >>47
すばらしいよ。君たち。サイコー。これを見て実装する奴が出てくるのに期待。

ところで、これを見て始めようとしている人に言っとくけど、
http://www.venkydude.com/articles/msn.htm
を見れば分かるとおり、メッセージの送受信(45の訳してくれた8.7と8.8)
までのあれこれが面倒なんだよ。だいたい3つのサーバに接続しないと
いけないし、コマンドとレスポンスは非同期だし。

そういうわけで、"6. Command Summary Table"でいうと、最低限
VER,INF,USR,XFR,ANS(RNG),IRO,JOI,MSG,BYE,OUT
これだけ実装すれば、
「メッセージを送られて、もしくは会話に招待されてからやりとりする」
エージェントは作れるよ。

あとハマった点として、
・エラー(eee 3桁数字)が送られてくると同時にサーバから切断される
→エラー=切断なので、エラーになるコマンドを送ってはならない
・DS(DispatchServer)がUSR IのあとでXFRでNSへの接続指示を出さず、
自分でUSR Sを送ってくる場合がある。つまりDS自身がNSになる場合がある。
この2点は要注意。

52 :ちょっと翻訳してみた :01/11/29 01:12
>>51 のページの超訳。わかりやすいかと、
クライアント=>サーバのメッセージは <<<<<< で、
サーバ<=クライアントのメッセージは >>>>>> をつけた。
実際には送られないので注意。プロトコル 1.0 と微妙に違うのはバージョンが違うせいか? じゃ、ここから
-----------------------------------------------
TCP/IP でメッセンジャサーバにつなぐ。今回は 64.4.13.58 の port 1863だ。 1863 はMSNメッセンジャのポートだYo!
つながったら、当然ログイン。まずはバージョンの確認。ここでクライアントアプリはサポートするバージョンをリストアップしてサーバに送り、マターリ返事を待つ。

<<<<<< VER 0 MSNP5 MSNP4 CVRO
(VERコマンド trial_id バージョン バージョン バージョン....)

メッセンジャプロトコルでは"trial id" がコマンドと一緒に送られる。"trial id"は最初は0で、サーバがクライアントのコマンドに成功するごとに+1される。サーバからの返事はこんなの

>>>>>> VER 0 MSNP5 MSNP4
(VERコマンド trial_id バージョン バージョン バージョン...)

バージョンが一致したYo! ではクライアントは認証に使用できるセキュリティーパッケージを聞く。パスワードを平文では送ると覗かれるので暗号化しれ

<<<<<< INF 1
(INF trial_id)

サーバからの返事はこんなの

>>>>>> INF 1 MD5
(INF trial_id セキュリティーパッケージ セキュリティーパッケージ ...)

サーバは MD5 をサポートしてるってこった。MD5についてはここでみれ
http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html

53 :ちょっと翻訳してみた:01/11/29 01:14
つづき
--------------------------------------------------------------
次にクライアントはuseridをサーバに送る。

<<<<<< USR 2 MD5 I venky_dude@hotmail.com
(USR trial_id セキュリティーパッケージ I userid)

とかやってるうちにサーバからは「逝ってよし」命令がくる。こんな風に。

>>>>>> XFR 2 NS 64.4.13.55:1863 0
(XFR trial_id NS 行き先)

オマエモナーなどおと返す必要もなく素直に逝かなきゃならなん。NS は Notification Server の意味。
で、64.4.13.55:1863 が行き先。アドレスとポートだ。わかるよな。(最後の 0 ってなんだ?)ここまでやったら、今の接続は閉じて、64.4.13.55:1863でもっかいバージョン確認からやり直しだ。
やり直しだから省略するぞ。

<<<<<< VER 3 MSNP5 MSNP4 CVRO
>>>>>> VER 3 MSNP5 MSNP4
<<<<<< INF 4
>>>>>> INF 4 MD5
<<<<<< USR 5 MD5 I venky_dude@hotmail.com

さ、次だ。サーバからはこんなのがくる。

>>>>>> USR 5 MD5 S 989048851.1851137130
(USR trial_id セキュリティーパッケージ S チャレンジ文字)

これは、サーバからの「この文字列を正しく暗号化してみやがれゴルア」という挑戦だ。
こっちはチャレンジ文字とパスワードをつないだものをMD5ハッシュで変換して返してやればいい。
ちなみに、今回はそれでできあがったものが 3b7926d277068ec49576a0c40598ff21 としておく。

<<<<<< USR 6 MD5 S 3b7926d277068ec49576a0c40598ff21
(USR trial_id セキュリティーパッケージ S パスワードを暗号化したもの)

パスワードが正しければ、こんな返事が来る

>>>>>> USR 6 OK venky_dude@hotmail.com venkat
(USR trial_id OK userid ニックネーム)

これでログインは完了。

54 :ちょっと翻訳してみた:01/11/29 01:16
もちょっと続く
-------------------------------------------------
だけどまだステータスは「オフライン」。そこで次は、ステータスの変更だ。次の命令を遅れ。

<<<<<< CHG 7 NLN
(CHG trial_id ステータス)

で、成功すればそのままエコーバックが帰ってくる。

>>>>>> CHG 7 NLN

次にサーバからはE-Mailのがくる。


>>>>>> MSG Hotmail Hotmail 221
(MSG trial_id 種類 長さ)
>>>>>> MIME-Version: 1.0
>>>>>> Content-Type: text/x-msmsgsinitialemailnotification; charset=UTF-8
>>>>>>
>>>>>> Inbox-Unread: 2
>>>>>> Folders-Unread: 0
>>>>>> Inbox-URL: /cgi-bin/HoTMaiL
>>>>>> Folders-URL: /cgi-bin/folders
>>>>>> Post-URL: http://www.hotmail.com

ここらへんは別に解説を読め(プロトコルの 8.8 とか)

次にクライアントとしては友達情報を得る。

<<<<<< LST 8 RL
(LST trial_id リスト方法)

サーバの返事はこんな感じ

>>>>>> LST 8 RL 69 1 19 venky_dude@hotmail.com venkat
(LST trial_id リスト方法 シリアルNo アイテムNo アイテム数 ユーザーID ニックネーム)
>>>>>> LST 8 RL 69 2 19 puxxxxx@hotmail.com PUJA
>>>>>> LST 8 RL 69 3 19 vancxxxxx@hotmail.com ramachandran
(中略)
>>>>>> LST 8 RL 69 18 19 shaxxxxx@hotmail.com Shankar
>>>>>> LST 8 RL 69 19 19 puneetagarxxxxx@hotmail.com puneet


で、友達がオンラインになったりすると、サーバはこんなメッセージを送ってよこす。

>>>>>> NLN 9 NLN deaxxxx@hotmail.com Venkatesh
(NLN trial_id ステータス ユーザーID ニックネーム)

オフラインの時はこんな感じ

>>>>>> FLN 9 FLN deaxxxx@hotmail.com
(FLN trial_id ステータス ユーザーID ニックネーム)

55 :ちょっと翻訳してみた:01/11/29 01:43
>>50
スレたてた方が大勢が翻訳してくれると思うならたててください
ある程度まとまったらモナジラにでも寄贈するか...

>>51
参考なる

56 :おおっ!:01/11/29 11:37
勉強してみます。
なんか、できたらageますわ

57 :51だが:01/11/30 02:24
おおっ!
>>52 >>53 >>54
すばらしい!そこが作れれば、あとメッセージ送るのは簡単だよ。
45が訳してくれたのを見ながら送るべし。みんながんばれ!

さらにアドバイス:

telnetで叩くときは、MSGの第3パラメータ「バイト長」を
いちいち計算するのが面倒。あらかじめどっかでMSGリクエストを
メッセージ本体とあわせて作っておくのがお勧め。

というわけで以下にサンプル。多分このまま使える。
(telnetでは試してないが・・・これでできたら誰か報告してね)
hogeの後のCRLFも含めて68バイトだから注意してね。

MSG 100 A 68
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8

hoge


さらに注意点:実際にプログラムで送信するときは、
C: MSG TrID [U | N | A] Length\r\nMessage
ていう送信データの末尾に注意。CRLFは「必要ない」。(MSGコマンドだけ)

たとえばCHGなら、
"CHG 7 NLN\r\n"
というデータを送信する。コマンドの終わりをCRLFで示す。

だが、MSGコマンドで送るデータの長さを指定しているので、
CRLFに続くデータは、ちょうど「バイト長」の長さだけ送ればよい。
CRLFは不要。次はどちらも正しいMSGコマンド(とメッセージデータ)。
"MSG 100 A 68\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\nhoge\r\n"
"MSG 100 A 66\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\nhoge"

ただし、telnetだとtelnet自身のバッファリングがあるから、
CRLFを最後に入れたデータじゃないと送信できないんだよね。
だから2通り書いておいた。

58 :51だが:01/11/30 03:06
>>53
> 次にクライアントはuseridをサーバに送る。
> (省略)
> とかやってるうちにサーバからは「逝ってよし」命令がくる。こんな風に。
>
> >>>>>> XFR 2 NS 64.4.13.55:1863 0
> (XFR trial_id NS 行き先)
>
> オマエモナーなどおと返す必要もなく素直に逝かなきゃならなん。NS は Notification Server の意味。
> で、64.4.13.55:1863 が行き先。アドレスとポートだ。わかるよな。(最後の 0 ってなんだ?)

とあるが、最後の0など送られて来ないよ。
仕様書のほうにも記述が無いし。
venkydude.comの文章が間違っていると思われ。

59 :51だが:01/11/30 03:09
3連続でごめん。
仕様書によると、TrIDはtrial idではなく、TransactionIDのようだ。
"MSN Messenger Service 1.0 Protocol" 5.6 Transaction Identifiers

60 :デフォルトの名無しさん:01/11/30 08:27
手動でtelnetするのは辛いな。
すぐにタイムアウトしてしまう・・・

61 :ちょっと翻訳してみた:01/11/30 22:01
http://www.venkydude.com/articles/msn2.htm
ここな。これでチャットできるよ
------------------------------------------------------------
チャットを始めよう。

前のページで Notification Server とのセッションは確立したが、友達とチャットするには後一歩だ。
今つながっている Notification Server に、Switchboard Server を紹介してもらい、Switchboard Server 上で友達を呼ばないといけない。
次のコマンドを Notification Server に送る。

<<<<<< XFR 9 SB
(XFR trial_id サーバの種類)

するとこんな返事がかえってくる。

>>>>>> XFR 9 SB 64.4.13.88:1863 CKI 989487642.2070896604
(XFR trial_id サーバの種類 サーバのアドレス セキュリティーパッケージ セキュリティー文字)

これで行き先は分かった。今の Notification Server に接続したまま、今度は紹介されたアドレスにログインを試みる。
(Notification Server との接続を切るとLogOUTしたことになるから注意)CKIはセキュリティーパッケージで、Cookie のことだ。
今のところこれしかない。

TCP/IPで 紹介されたアドレスに接続し、ログイン命令を送る。

<<<<<< USR 1 venky_dude@hotmail.com 989487642.2070896604
(USR trial_id ユーザーID セキュリティー文字)

セキュリティー文字は送られてきた物をそのまま返せばいい。あってればこんな返事

>>>>>> USR 1 OK venky_dude@hotmail.com venkat
(USR trial_id ユーザーID ニックネーム)

ログインは完了。次は友達を呼ばないと。こんなコマンドで呼べる。

<<<<<< CAL 2 deadxxx@hotmail.com
(CAL trial_id ユーザーID)

このユーザーIDは当然呼び出す相手のID。「呼び出すこと」に成功すれば、こんなのが返ってくる。

>>>>>> CAL 2 RINGING 11717653
(CAL trial_id ステータス セッションID)

セッションIDは相手が参加してくる時に使う情報。で、相手がチャットに参加したら、こんな情報が送られてくる。

>>>>>> JOI deadlee@hotmail.com Venkatesh
(JOI ユーザーID ニックネーム)

これであとは MSG コマンドでメッセージをやりとりすればいい。

62 :ちょっと翻訳してみた:01/11/30 22:04
まだ続く
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
今度は呼び出される側についてみてみよう。

呼び出される側もOnlineなら、Notification Server と接続しているわけだが、Notification Server からこんな情報が来る。

>>>>>> RNG 11742066 64.4.13.74:1863 CKI 989495494.750408580 deaxxxx@hotmail.com Venkatesh
(RNG セッションID アドレス セキュリティーパッケージ セキュリティー文字 ユーザーID ニックネーム)

アドレスは SwitchBoard Server のアドレス。ユーザーIDとニックネームは呼び出した奴の名前だ。CKIは呼び出し側で説明したとおり。
セッションIDも先に説明したものだが、今度はこれに意味があるので注意。

さて、この呼び出しに答えるには SwitchBoard Server に接続する。
Notification Server には接続したままでだ。(これを切るとログアウトになるのは一緒)

送られてきたアドレスにTCP/IPで接続したら、こんなコマンドを打て。

<<<<<< ANS 1 venky_dude@hotmail.com 989495494.750408580 11742066
(ANS trial_id ユーザーID セキュリティー文字 セッションID)

ユーザーIDは自分のものだ。セキュリティー文字、セッションIDは送られてきた物。ログインできてそれらが正しければこんな情報が返ってくる。

>>>>>> IRO 1 1 1 deaxxxx@hotmail.com Venkatesh
(IRO 参加者番号 参加者数 ユーザーID ニックネーム)
>>>>>> ANS 1 OK
(ANS trial_id 状態)

参加者番号・参加者数はこのチャットに参加している人だ。
複数人でチャットするときなんかに。今回は一人なのであまり意味がない。
参加者番号は固有の物ではなくて、参加者数に対する通し番号で、抜けがないかどうか調べるだけのもの。

さあ、これで後は MSG コマンドでチャットできる。

63 :ちょっと翻訳してみた:01/11/30 22:06
これは >>57 見た方がいいかも
----------------------------------------------------------------
実際に送る前に、MSGコマンドの使い方はいいかな?

送るときはこんな感じだ。

<<<<<< MSG 2 N 137 <<<<<< MIME-Version: 1.0
<<<<<< Content-Type: text/plain; charset=UTF-8
<<<<<< X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF=; CO=0; CS=0; PF=22
<<<<<<
<<<<<< hello

送られた方にはこんな感じで通知される

>>>>>> MSG deaxxxx@hotmail.com Venkatesh 137
>>>>>> MIME-Version: 1.0
>>>>>> Content-Type: text/plain; charset=UTF-8
>>>>>> X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF=; CO=0; CS=0; PF=22
>>>>>>
>>>>>> hello

あと、「他の奴がメッセージを打っている途中」ってのがわかるのは、こんなメッセージが送られてくるからだ。

>>>>>> MSG deaxxxx@hotmail.com Venkatesh 100
>>>>>> MIME-Version: 1.0
>>>>>> Content-Type: text/x-msmsgscontrol
>>>>>> TypingUser: deaxxxx@hotmail.com



64 :ちょっと翻訳してみた:01/11/30 22:10
ってこった。

>>57-59
そうなんか、おれ適当に訳してるだけだからな
実際に調べた訳じゃないので

>>56
期待


さて、これでとりあえず一通りのことはできるようになったはず。
他わからんと頃は自分で訳せ つうか訳して上げろ
つうか MirandaICQ の MSNプラグイン 日本語対応させてくれよ(泣)

65 :ちょっと翻訳してみた:01/12/01 12:00
ショック ここに日本語訳あるじゃん
VBソースも公開されてるよ

http://www.geocities.co.jp/SilkRoad-Ocean/7796/msn/

66 :デフォルトの名無しさん:01/12/01 14:05
むしろ比較的早い段階で見つかってよかったよ……

67 :51だが:01/12/01 16:03
>>66 そうだね。前向きに行こうよ。

68 :オーバーテクナナシー:01/12/02 09:41
とりあえず Delphi で作ってみたよ。

http://homepage3.nifty.com/yamaneko/

69 :デフォルトの名無しさん:01/12/02 19:33
>>68
落としてみた thanx

70 :デフォルトの名無しさん:01/12/03 10:27
>>68
これだけじゃつまらん。
なにか個性的な機能を付けてくれよ・・・

71 :デフォルトの名無しさん:01/12/03 10:57
とりあえず形にしてみただけなんだろうからつまらんとか言うなよ…

72 :java勉強中:01/12/03 11:38
javaで作って欲しい..
つーか作りたい..

73 :他力本願:01/12/03 14:35
>>72
漏れもjava版ほしーいな。
ぜひ作ってください、、、

74 :うんこぷるぐらま:01/12/03 14:46
libを使わない場合一番最初にどこにつなげばいいの??
messager.hotmail.com:1863にコネクションを張ればいいの??

なーんかいまいちわかんないよ

よーするに、俺がダメダメなだけって話なんだけどね

75 :他力本願:01/12/03 15:45
>>74
既出のソースとか見ると「64.4.13.55:1863」とかにダイレクトに繋いでるけど、
「messager.hotmail.com:1863」でいいのでは?
ちゃんと接続できるしね。

というか、むしろホスト名で指定した方がいいと思ふ。

76 :デフォルトの名無しさん:01/12/03 16:34
>>71
クライアントサンプルが出てきたので、今度はアイデアか

 YahooMessengerやICQも管理できるとか←俺の希望
 英語を送ると日本語訳してくれるとか
 単語を送ると検索してくれるとか
 「寂しいよ」って送ると友達を紹介してくれるとか
 ニュースを巡回してメッセージとして送ってくれるとか
 誰に届くか分からないメッセージを送れるとか
 ファイル共有/検索できるとか ←法的にどうよ
 ちょっと留守な時に友達の相手をしてくれるとか
 メッセージを声で読み上げてくれる←そんなソフトと連携して
 メールもメッセージとして読んでくれるとか
 「何か。」が自分の友達に勝手にメッセージを送るとか

インターフェースを stdout みたいなログ表示画面みたいな平坦な物にして欲しいかも

77 :デフォルトの名無しさん:01/12/03 16:46
MSN Messenger のシェアって老舗のAOLとかICQと比べて実際どうなの?
まぁ、Windows XP 標準搭載で、今後は爆発的に普及するだろうけど。

あいかわらずゲイツのやることは・・・

78 :デフォルトの名無しさん:01/12/03 17:19
>>72
>>73
需要結構あるかなあ。
結構あれば、つくーちゃうよ。

79 :51だが:01/12/03 17:21
>>76
ひょっとして知り合いかも・・・

> 単語を送ると検索してくれるとか
これ作った
> 誰に届くか分からないメッセージを送れるとか
これ考えてた
> ファイル共有/検索できるとか ←法的にどうよ
これあった。URL忘れたけどこのスレからリンクされてたかな・・・

ちなみにおれは逆さから読むやつを作った人です。

80 :51だが:01/12/03 17:22
> > ファイル共有/検索できるとか ←法的にどうよ
> これあった。URL忘れたけどこのスレからリンクされてたかな・・・
思い出した。 http://www.kunani.com/msn/

81 :76だが:01/12/03 23:24
おそらく知り合いでないと思われ

>>80 のリンクみたけど、
もっと広い範囲で検索できる必要があるかと。

たとえば、
コンタクトリストに「ナップ君(仮)」を追加する
ナップ君にファイル名(検索式)をメッセージとして送れば
条件に合う友達を紹介してくれる
(この時点ではまだ、ナップ君の友達であってユーザーのではない)
で、ユーザーはその紹介された友達をコンタクトリストに入れて
チャットでもしてお友達になると。
で、気が合えばファイルを交換するとか

友達同士でも著作権ものは違法か(笑)

仕組み的には、サーバ(ナップ君仮)は、検索式を、そのまま全友達に回す
で、ユーザーの方が専用クライアントで処理
まあ、サーバが処理してもいいけどさ

サーバ的には「メッセンジャー用お友達紹介サーバ」で、
ファイル交換サーバではないからサーバ運用者には何も問われない?

82 :デフォルトの名無しさん:01/12/04 02:44
インビジでサインアップできたらいいなぁ。

全てのメンバーを禁止するメンバーにする

終了

サインアップ

オフライン

許可するメンバーに戻す

の自動化の他にもやり方あるのかな?

83 :デフォルトの名無しさん:01/12/04 13:55
複数のアカウントを同時に使えるのがいいなー

84 :デフォルトの名無しさん:01/12/04 14:35
>>82
サインインした後に、ユーザの状態をオンラインにするパケットを
送っているみたいだから、それを送らなければいいんじゃないかな?

85 :51だが:01/12/04 14:35
>>82 >>83
けっこうMSN Messengerの「くらいあんと」に興味のある人のほうが多いみたいね。
おれは、むしろ一ユーザとして振舞うロボットの「エージェント」に興味あるんだけど。
同じ興味のやつにアカウント教えて意見を聞きたいが、ここで公開したくないしね。。。

86 :デフォルトの名無しさん:01/12/04 14:41
WinCEで動かしたい・・・・・

87 :デフォルトの名無しさん:01/12/04 15:01
>>75
Symantec LiveUpdate 1.4 のセキュリティホールを参照
http://www.watch.impress.co.jp/internet/www/article/2001/1012/symantec.htm
DNS詐称のリスクがあるので、IPアドレス指定で問題ない場合はそちらがよい。

88 :デフォルトの名無しさん:01/12/04 16:09
>>87
ついでに言うと、独り言だが、負荷分散の仕組みとして、
ダイナミックDNSではなく、DispatchServerという
仕組みを取っている点について、最初は「めんどくせ〜」
と思ったが、上記の理由で納得した。でも違う方法もありそうだが。

89 :デフォルトの名無しさん:01/12/04 19:07
間違い?発見。

> > >>>>>> XFR 2 NS 64.4.13.55:1863 0
> > (XFR trial_id NS 行き先)
> >
> > オマエモナーなどおと返す必要もなく素直に逝かなきゃならなん。NS は Notification Server の意味。
> > で、64.4.13.55:1863 が行き先。アドレスとポートだ。わかるよな。(最後の 0 ってなんだ?)
>
> とあるが、最後の0など送られて来ないよ。
> 仕様書のほうにも記述が無いし。
> venkydude.comの文章が間違っていると思われ。
というのはMSNP2の話だった。
MSNP4 MSNP5のときは最後の0送られてくる。意味はわからないけど・・・

90 :デフォルトの名無しさん:01/12/04 20:48
ログオン時に「表示する名前」を変えられる物は作れますか?
複数のマシンにMessengerをインストールしてるんだけど、
サインインするマシンごとに「表示する名前」を変えたいわけよ。
「名無し@会社」とか「名無し@家」とか。

要望出したら、「複数のアカウントをとってください」とか言われました。
それじゃ意味ないのに。

91 :デフォルトの名無しさん:01/12/04 21:13
>>90
それは簡単に出来そうだね

92 :デフォルトの名無しさん:01/12/04 22:48
>>78
java版つくーてつくーて!

(´-`).。oO(このスレはなんでsage進行なんだろう?)

93 :ageてみた:01/12/05 16:44
声で操作できるメッセンジャーかな?
http://www.100shiki.com/index.php3?20011130

94 :デフォルトの名無しさん:01/12/05 17:41
>>93
これ(・∀・)イイ!
日本語対応版きぼーん!

95 :java勉強中:01/12/05 21:20
僕も希望します,後学の為によろしかったらソース付きでよろよろ.<java版MSN作成

96 :デフォルトの名無しさん:01/12/05 22:19
http://corp.odigo.com/
こんなソフトもあるんだ。

97 :78:01/12/05 23:30
ってゆーか、>>63をパクるだけだよ・・・。
僕も勉強になるから、ちょと書いてみます。
(もう誰か書いていたりして。)
もち、ソースつきで。

98 :デフォルトの名無しさん:01/12/06 00:27
sage

99 :ageてみた:01/12/06 22:58
>>18
解決しちゃった。自己レス。
サーバにログインして、すぐにSYNすれば、それ以降コンタクトリストに追加されたタイミングで、
S: ADD 0 RL ser# UserHandle CustomUserName
てのがくる。

100 :デフォルトの名無しさん:01/12/07 10:22
>>97
期待age

175 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)