libipmsg - IP Messenger library for UNIX - 仕様 |
No | 項目 | 説明 | libipmsgでは。。。 |
---|---|---|---|
1 | バージョン | 現在のところ1固定 | ー |
2 | パケット番号 | IPアドレス、ポート別にパケットの一意性を保証できるユニークな値。 | random(3)で生成しています。 |
3 | ユーザ名 | 送信ホストのIPメッセンジャーを起動しているログオンユーザ名 | getpwuid_r(3)で取得される文字列 |
4 | ホスト名 | 送信ホストのコンピュータ名 | gethostname(2)で取得される文字列 |
5 | コマンド番号 | メッセージIDとメッセージオプションの論理和を指定します。メッセージオプションはメッセージIDにより異なります。 | ー |
6 | オプション部 | メッセージ固有のオプション文字列を設定します。オプション部はコマンドにより異なります。 | ー |
1:131835229:nikikuni:falcon:6291713:nikikuni(\00)Group1(\00)
1:861706453:nikikuni:falcon:6291714:
1:1597161013:nikikuni:falcon:114:21003
No | 項目 | 説明 |
---|---|---|
1 | メッセージID(値) | IPMSG_NOOPERATION (0x00000000UL) |
メッセージ | 無操作 | |
送信時補足説明 | 通信できることを確認するためにパケットを送信します。 | |
受信時補足説明 | 受信時は何もしません。 | |
コマンド番号 | ー | |
オプション文字列の説明 | ー | |
関連API | ー | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:1738739518:root:falcon:0:(\00) | |
2 | メッセージID(値) | IPMSG_BR_ENTRY (0x00000001UL) |
メッセージ | サービスにエントリ | |
送信時補足説明 | サービスにログインしたい場合に送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストはパケットを元に自らのホストリストに追加し送信元のホストにIPMSG_ANSENTRYを送信します。 | |
コマンド番号 | ー | |
オプション文字列の説明 |
|
|
関連API | IpMessengerAgent::Login() | |
プロトコル | UDP(ブロードキャスト) | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:131835229:nikikuni:falcon:6291713:nikikuni(\00)Group1(\00) | |
3 | メッセージID(値) | IPMSG_BR_EXIT (0x00000002UL) |
メッセージ | サービスから抜ける | |
送信時補足説明 | サービスからログアウトしたい場合に送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストはパケットを元に自らのホストリストから送信元のホストを削除します。 | |
コマンド番号 | ー | |
オプション文字列の説明 | ー | |
関連API | IpMessengerAgent::Logout() | |
プロトコル | UDP(ブロードキャスト) | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:861706453:nikikuni:falcon:6291714:(\00) | |
4 | メッセージID(値) | IPMSG_ANSENTRY (0x00000003UL) |
メッセージ | エントリを認識したことを通知 | |
送信時補足説明 | IPMSG_BE_ENTRYへの応答として送信元のホストに送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストは同一サービスにログインしているホストとしてパケットを元に自らのホストリストに追加します。 | |
コマンド番号 | ー | |
オプション文字列の説明 |
|
|
関連API | ー | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:400575632:root:falcon:6291459:nikikuni(\00)Group1(\00) | |
5 | メッセージID(値) | IPMSG_BR_ABSENCE (0x00000004UL) |
メッセージ | 不在モード変更 | |
送信時補足説明 | 不在モードに設定したい場合に送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストはパケットを元に自らのホストリストを不在に更新します。 | |
コマンド番号 | ー | |
オプション文字列の説明 |
|
|
関連API | IpMessengerAgent::SetAbsence(),IpMessengerAgent::ResetAbsence() | |
プロトコル | UDP(ブロードキャスト) | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:1174981878:root:falcon:6291716:nikikuni[(\89)(\ef)(\8b)c(\92)(\86)](\00)Group1(\00) | |
6 | メッセージID(値) | IPMSG_BR_ISGETLIST2 (0x00000018UL) |
メッセージ | ホストリスト送出可能メンバの探索 | |
送信時補足説明 | ホストリストを取得したい場合に送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストはIPMSG_OKGETLISTを送信元のホストに送信します。 | |
コマンド番号 | ー | |
オプション文字列の説明 | ー | |
関連API | IpMessengerAgent::UpdateHostList() | |
プロトコル | UDP(ブロードキャスト) | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:801798212:root:falcon:6291480:(\00) | |
7 | メッセージID(値) | IPMSG_OKGETLIST (0x00000011UL) |
メッセージ | ホストリスト送出可能通知 | |
送信時補足説明 | IPMSG_BR_ISGETLIST2への応答としてホストリストを送出可能であることを送信元のホストに送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストは送信元のホストに開始位置を"0"としてIPMSG_GETLISTを送信します。 | |
コマンド番号 | ー | |
オプション文字列の説明 | ー | |
関連API | ー | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:801798212:root:falcon:6291480:(\00) | |
8 | メッセージID(値) | IPMSG_GETLIST (0x00000012UL) |
メッセージ | ホストリスト送出要求 | |
送信時補足説明 | IPMSG_OKGETLISTへの応答として送信元のホストにホストリストを要求するメッセージを送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストは送信元のホストにIPMSG_ANSLISTに乗せてホストリストを送信します。 | |
コマンド番号 | ー | |
オプション文字列の説明 | ホストリスト開始位置 |
|
関連API | ー | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:1611859237:root:falcon:6291474:(\00) | |
9 | メッセージID(値) | IPMSG_ANSLIST (0x00000013UL) |
メッセージ | ホストリスト送出 | |
送信時補足説明 | IPMSG_GETLISTへの応答として自ホストのホストリストを送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストはパケットで受け取ったホストリストを元に自らのホストリストに追加します。またホストリスト個数がゼロになるまでの間、ホストリスト開始位置をホストリスト個数分すすめた値をIPMSG_GETLISTを通じて送信します。 | |
コマンド番号 | ー | |
オプション文字列の説明 | まず、このパケットで送出するホストリストの位置/個数情報がきて、ホストリスト開始位置(\a)ホストリスト個数(\a)続けて自ホストが保持しているホストリストの要素を送出する要素分、以下のフォーマットで繰り返す。 ログイン名(\a)ホスト名(\a)コマンド番号(\a)IPアドレス(\a)ポート番号(リトルエンディアン)(\a)ニックネーム(\a)グループ各要素とも空の場合は(\b)が一文字設定されます。 |
|
関連API | ー | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:1187183369:Administrator:ABCDEFGHOST:19: 0(\07) 2(\07) Administrator(\07)ABCDEFGHOST(\07)6291456(\07)192.168.1.158(\07)30985(\07)nickname(\07)(\08) (\07)root(\07)falcon(\07)6291456(\07)192.168.1.2(\07)30985(\07)nikikuni(\07)Group1(\07)(\00)実際には一行 |
|
10 | メッセージID(値) | IPMSG_SENDMSG (0x00000020UL) |
メッセージ | メッセージの送信 | |
送信時補足説明 | メッセージを送信したい場合に送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストは送信元のホストに受信したIPMSG_SENDMSGのパケット番号をIPMSG_RECVMSGに乗せて送信します。 | |
コマンド番号 | メッセージIDの他に
|
|
オプション文字列の説明 |
送信/暗号化メッセージ(\00)ファイルID:ファイル名:サイズ():タイムスタンプ(16進表現):属性:拡張属性(\a) 以下添付個数分繰り返し。。。
IPMSG_RECVMSGが受信されるまで最大5回のリトライを行います。リトライ回数を超えた場合の動作はアプリケーションに依ります。 |
|
関連API | IpMessengerAgent::SendMsg | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 |
1:1187100869:Administrator:ABCDEFGHOST:4194592:20002:a89e9106f64b99585a 7578b8c46521f5e4a58286ecbb9a1c4336dd5f0757ea5628b057a2ca666be949336563 8bd1bb2fee05e17a2a1cb77958d8b7ea183f5fea45b53d79d444416cc3540f51313678b ffcee6c18e52450ca93106bf1393b9b9c010e20fd04ed0edb3d22d27ae14e6e7c2d9e19 655c07d567a3b151b2ee427eae:0afefbcdfbbf314ef9eb646e8b723fdb(\00) 実際には一行 |
|
11 | メッセージID(値) | IPMSG_RECVMSG (0x00000021UL) |
メッセージ | メッセージの受信確認 | |
送信時補足説明 | IPMSG_SENDMSGの応答として自動的に送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストはパケット番号に対応するIPMSG_SENDMSGのリトライを中止してメッセージを送信済みメッセージと認識します。 | |
コマンド番号 | ー | |
オプション文字列の説明 | パケット番号 |
|
関連API | ー | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:1187100873:Administrator:ABCDEFGHOST:33:400259212(\00) | |
12 | メッセージID(値) | IPMSG_READMSG (0x00000030UL) |
メッセージ | 封書の開封通知 | |
送信時補足説明 | 封書メッセージを開封したときに、IPMSG_SENDMSGの応答として送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストはパケット番号に対応するIPMSG_SENDMSGのメッセージを開封済みメッセージと認識します。また、IPMSG_READCHECKOPTがついている場合はIPMSG_ANSREADMSGを自動的に送信します。 | |
コマンド番号 | ー | |
オプション文字列の説明 | パケット番号 |
|
関連API | IpMessengerAgent::ConformMessage() | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:1187100872:Administrator:ABCDEFGHOST:48:1428346209(\00) | |
13 | メッセージID(値) | IPMSG_DELMSG (0x00000031UL) |
メッセージ | 封書破棄通知 | |
送信時補足説明 | メッセージを破棄したときに、IPMSG_SENDMSGの応答として送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストはパケット番号に対応するIPMSG_SENDMSGのメッセージを破棄します。 | |
コマンド番号 | ー | |
オプション文字列の説明 | パケット番号 |
|
関連API | IpMessengerAgent::DeleteNotify() | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:625365700:root:falcon:49:20002(\00) | |
14 | メッセージID(値) | IPMSG_ANSREADMSG (0x00000032UL) |
メッセージ | 封書の開封確認(8 版から追加) | |
送信時補足説明 | IPMSG_READCHECKOPTがついている場合、IPMSG_READMSGの応答として自動的に送信します。 | |
受信時補足説明 | 受信時は特に何もしません。 | |
コマンド番号 | ー | |
オプション文字列の説明 | パケット番号 |
|
関連API | ー | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | ||
15 | メッセージID(値) | IPMSG_GETFILEDATA (0x00000060UL) |
メッセージ | 添付ファイル要求 | |
送信時補足説明 | ファイルをダウンロードしたいときにTCPソケットを通じて送信します。応答としてファイルの内容がソケットを通じて受信されるので、アプリケーションはファイルに保存します。 | |
受信時補足説明 | このメッセージを受け取ったホストはパケット番号、ファイルIDに対応するファイルの内容を開始位置から送信します。 | |
コマンド番号 | ー | |
オプション文字列の説明 | パケット番号:ファイルID:開始位置 |
|
関連API | RecievedMessage::DownloadFile() | |
プロトコル | TCP | |
libipmsgでのサポート | △(自ホストからダウンロードできません) | |
送信電文の例 | ||
16 | メッセージID(値) | IPMSG_RELEASEFILES (0x00000061UL) |
メッセージ | 添付ファイル破棄 | |
送信時補足説明 | ダウンロードが完了した等の理由でファイルが不要になった場合、送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストはパケット番号、ファイルIDに対応するファイル要素を送信済みメッセージから廃棄します。 | |
コマンド番号 | ー | |
オプション文字列の説明 | パケット番号:ファイルID |
|
関連API | ー | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | ||
17 | メッセージID(値) | IPMSG_GETDIRFILES (0x00000062UL) |
メッセージ | 添付階層ファイル要求 | |
送信時補足説明 | ディレクトリをダウンロードしたいときにTCPソケットを通じて送信します。応答としてディレクトリの構成情報/内容がソケットを通じて受信されるので、アプリケーションはファイルに保存します。 構成情報は以下のフォーマットで送信します。 ヘッダーサイズ:ファイル名:サイズ:タイムスタンプ:属性:拡張属性:ファイル内容 以下ディレクトリ構成を再帰的に繰り返し全てのファイルに対しダウンロード操作を行う。
|
|
受信時補足説明 | このメッセージを受け取ったホストはパケット番号、ファイルIDに対応するディレクトリの構成情報/内容を送信します。 | |
コマンド番号 | ー | |
オプション文字列の説明 | パケット番号:ファイルID |
|
関連API | RecievedMessage::DownloadDir() | |
プロトコル | TCP | |
libipmsgでのサポート | △(自ホストからダウンロードできません) | |
送信電文の例 | ||
18 | メッセージID(値) | IPMSG_GETINFO (0x00000040UL) |
メッセージ | IPMSGバージョン情報取得 | |
送信時補足説明 | 特定のホストのバージョン情報が取得したい場合に送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストはIPMSG_SENDINFOを送信元のホストに自動的に送信します。 | |
コマンド番号 | ー | |
オプション文字列の説明 | ー | |
関連API | IpMessengerAgent::GetInfo() | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:943428094:root:falcon:64:(\00) | |
19 | メッセージID(値) | IPMSG_SENDINFO (0x00000041UL) |
メッセージ | IPMSGバージョン情報応答 | |
送信時補足説明 | IPMSG_GETINFOの応答として自動的にバージョン情報を送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストはバージョン情報を得られます。プログラムの振る舞いはアプリケーションに依ります。 | |
コマンド番号 | ー | |
オプション文字列の説明 | バージョン情報 |
|
関連API | ー | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:1480910763:root:falcon:6291521:IpMessengerAgent for C++ Unix Version 0.1.5(\00) | |
20 | メッセージID(値) | IPMSG_GETABSENCEINFO (0x00000050UL) |
メッセージ | 不在通知文取得 | |
送信時補足説明 | 特定のホストの不在詳細文字列が取得したい場合に送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストはIPMSG_SENDABSENCEINFOを送信元のホストに自動的に送信します。 | |
コマンド番号 | ー | |
オプション文字列の説明 | ー | |
関連API | IpMessengerAgent::GetAbsenceInfo() | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:2033493194:root:falcon:80:(\00) | |
21 | メッセージID(値) | IPMSG_SENDABSENCEINFO (0x00000051UL) |
メッセージ | 不在通知文応答 | |
送信時補足説明 | IPMSG_GETABSENCEINFOの応答として自動的に不在詳細文字列を送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストは不在詳細文字列を得られます。プログラムの振る舞いはアプリケーションに依ります。 | |
コマンド番号 | ー | |
オプション文字列の説明 | 不在詳細文字列 |
|
関連API | ー | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:137419912:root:falcon:6291537:Not Absence mode(\00) | |
22 | メッセージID(値) | IPMSG_GETPUBKEY (0x00000072UL) |
メッセージ | RSA 公開鍵取得 | |
送信時補足説明 | 新たにホストリストが追加されたときに自動的に送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストはIPMSG_ANSPUBKEYを送信元ホストに自動的に送信します。 | |
コマンド番号 | ー | |
オプション文字列の説明 | 暗号化能力暗号化能力として以下のオプションを相手の暗号強度に合わせて
| |
関連API | ー | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 | 1:1597161013:nikikuni:falcon:114:21003(\00) | |
23 | メッセージID(値) | IPMSG_ANSPUBKEY (0x00000073UL) |
メッセージ | RSA 公開鍵応答 | |
送信時補足説明 | IPMSG_GETPUBKEY の応答として暗号化メソッドと公開鍵を送信元のホストに送信します。 | |
受信時補足説明 | このメッセージを受け取ったホストは送信元のホストの暗号化メソッドと公開鍵を得られます。ホストリストの対応ホストの公開鍵情報に自動的に更新されます。 | |
コマンド番号 | ー | |
オプション文字列の説明 | 暗号化能力:メソッド-公開鍵暗号化能力として以下のオプションを相手の暗号強度に合わせて
|
|
関連API | ー | |
プロトコル | UDP | |
libipmsgでのサポート | ○ | |
送信電文の例 |
1:1652553544:root:falcon:115:21003:010001-C1E36732DD8B3A53A05CD7F9B6525E65B9DF F5CF7DD92086CDD2711932F45DE77ECB3F7031C92DA6F133A6069C13422EA85EE472CA 0A4576D41DFE648A0494233F7064AA11316E1FB7F8C0DDB14629922D584BE224F7EEF5A 1931270BAF3B73E1D7B8F7EE88840C081B0ED627B280FF324DECC747FFFD794BE50A2E 784FDE913(\00)実際には一行 |
ホスト1 | メッセージ | ホスト2 | ||
---|---|---|---|---|
サービスにログイン | → | IPMSG_BR_ENTRY (ブロードキャスト) |
→ | ホストリストに追加し、ホスト2の情報を送出 |
ホストリストに追加 | ← | IPMSG_ANSENTRY | ← |
ホスト1 | メッセージ | ホスト2 | ||
---|---|---|---|---|
サービスからログアウト | → | IPMSG_BR_EXIT (ブロードキャスト) |
→ | ホストリストから削除 |
ホスト1 | メッセージ | ホスト2 | ||
---|---|---|---|---|
ホストリスト要求 | → | IPMSG_BR_GETLIST2 (ブロードキャスト) |
→ | 送出可能なホストリストがあるか確認し送出可能であることを通知 |
送出可能であることを確認し、ホストリストを要求 | ← | IPMSG_OKGETLIST |
← | |
→ | IPMSG_GETLIST |
→ | 要求に応じてホストリストを返信 | |
ホストリストに追加 | ← | IPMSG_ANSLIST |
← |
ホスト1 | メッセージ | ホスト2 | ||
---|---|---|---|---|
メッセージの送信 | → | IPMSG_SENDMSG | → | 受信できたら受信通知を行う |
メッセージを送信済みメッセージとして認識 | ← | IPMSG_RECVMSG |
← | |
送信済みメッセージを廃棄 | ← | IPMSG_DELMSG |
← | 受信メッセージを破棄した |
ホスト1 | メッセージ | ホスト2 | ||
---|---|---|---|---|
メッセージの送信 | → | IPMSG_SENDMSG | → | 受信できたら受信通知を行う |
メッセージを送信済みメッセージとして認識 | ← | IPMSG_RECVMSG |
← | |
送信済みメッセージを開封済みメッセージとして認識 | ← | IPMSG_READMSG |
← | 封書メッセージを開封した |
開封済みメッセージを廃棄 | ← | IPMSG_DELMSG |
← | 受信メッセージを破棄した |
ホスト1 | メッセージ | ホスト2 | ||
---|---|---|---|---|
不在モードになった | → | IPMSG_BR_ABSENCE (ブロードキャスト) |
→ | ホストリストの対象ホストを不在モードに設定 |
ホスト1 | メッセージ | ホスト2 | ||
---|---|---|---|---|
バージョン情報要求 | → | IPMSG_GETINFO | → | 要求を受けてバージョン情報送出 |
バージョン情報取得 | ← | IPMSG_SENDINFO | ← |
ホスト1 | メッセージ | ホスト2 | ||
---|---|---|---|---|
不在詳細情報要求 | → | IPMSG_GETABSENCEINFO | → | 要求を受けて不在詳細情報送出 |
不在詳細情報取得 | ← | IPMSG_SENDABSENCEINFO | ← |
ホスト1 | メッセージ | ホスト2 | ||
---|---|---|---|---|
RSA 公開鍵要求 | → | IPMSG_GETPUBKEY | → | 要求を受けてRSA 公開鍵送出 |
RSA 公開鍵取得 | ← | IPMSG_ANSPUBKEY | ← |
ホスト1 | メッセージ | ホスト2 | ||
---|---|---|---|---|
受信したメッセージからファイルダウンロード要求 | → | IPMSG_GETFILEDATA (TCP/IP) |
→ | 要求を受けてファイルを受信したストリームに送出 |
ファイル保存 | ← | ファイルデータ | ← |
ホスト1 | メッセージ | ホスト2 | ||
---|---|---|---|---|
受信したメッセージからディレクトリダウンロード要求 | → | IPMSG_GETFILEDATA (TCP/IP) |
→ | 要求を受けて指定ディレクトリのファイルヘッダー、ファイルデータを受信したストリームに送出 |
ファイル保存 | ← | ファイルヘッダー、ファイルデータ | ← |