揮発性のメモ2

http://d.hatena.ne.jp/iww/

手動でIP Messenger電文を送信する

UDPで電文を送り付ければ、とりあえずメッセージくらいは表示できる。 ncコマンド最強伝説

echo "1:99:ユーザ名:グループ名:32:本文テキスト" | iconv -t sjis | nc -q0 -u 192.168.0.100 2425

IP Messenger プロトコルメモ.
IP Messenger 通信プロトコル仕様(ドラフト11版)
IpMessenger死活監視とメッセージ送信クライアント作った(php)

電文構成

要素をコロンで区切る

1 バージョン番号。1 にしておけばいい
99 パケット番号。本来は適当にインクリメントする。同じままでもまあ動く
ユーザ名 ユーザ名。SJIS使う
グループ名 グループ名。SJIS使う
32 コマンド番号。いろいろある。 メッセージ送信は32
本文テキスト 本文テキスト。SJIS使う

ncコマンド

nc [option] 宛先 ポート番号

-q 標準入力がEOFになってから何秒待つか。0で即終了
-u UDP指定

phpで送信する場合

最小のコードだとこんな感じ

<?php
function ne($s){ return mb_convert_encoding($s,"sjis","utf8"); }
$fp = fsockopen("udp://192.168.0.100:2425");
fwrite($fp, ne("1:99:ユーザ名:グループ名:32:本文テキスト"));