1452 への返信

prefixオブジェクトのaddressについてlm - No.1452
こんにちは。
サンプルスクリプト見よう見まねで発言者のIPを表示するものを作ろうとしたのですが、
send(channel, prefix.address);
これで表示させてもホスト名しか表示されず、肝心のIP部分が表示されません。
リファレンスにはホスト名、IPアドレスを返します。と書いてあるのですが……どのようにすれば良いのでしょうか。
Psychs - No.1453
ホスト名か(逆引きされていなければ)IPアドレスを返すということです。
いまのところ、スクリプトから DNS を引いてホスト名をIPアドレスに
解決する方法は提供していません。
逆に、どうしてもホスト名ではなくIPアドレスが必要なケースって
何かあるのでしょうか?
lm - No.1454
返答ありがとうございます。
仕様だったのですね、理解しました。

>逆に、どうしてもホスト名ではなくIPアドレスが必要なケースって
何かあるのでしょうか?
ネット対戦ゲーム等のチャンネルでキーワードに反応してIPアドレスを表示させることが出来れば接続の補助になりえると思ったのです。
Psychs - No.1455
それは、実はホスト名でも問題ないけど、慣例的にIPアドレスを使っているということですよね。
lm - No.1458
いえ、IPアドレスでないと接続に使えません。
サーバーを持たないネット対戦ゲームのほとんどはIPアドレスを利用すると思うのですが……
aheena - No.1460
lmさんの問題を含めて、自分も困っています。

一応IPアドレスに関しては
executeCommand("nslookup " + prefix.address);
のように逃げてはいますが。。。


whoisの結果として得られる情報で
- IPアドレス
- チャンネル
- サーバ
- アイドル時間
- ログイン時刻
に関しては現在、スクリプトから扱う方法が無いようなので、
IRC-BOTなんかを書こうとして不便しています。
Psychs - No.1462
まず前提ですが、それらの情報は LimeChat は常時保持して
いるわけではありません。
Whois ダイアログを出す度に Whois コマンドを発行して、
そのリプライから表示しているわけです。

それらの情報のうち、IP アドレス以外については、
311、312、317 リプライにすべて含まれているので、
onNumericReply イベントでそれらのリプライを拾えば
いいでしょう。
B - No.1499
まだ需要あるかわかりませんが、一応ネットゲーム関係の対戦募集に使えそうなスクリプトを…

function event::onChannelText(prefix, channel, text)
{
var aaa;
aaa = executeCommand("nslookup " + prefix.address); //nslookupでホストからIPを逆引き
var bbb;
bbb = aaa.replace(/192\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/,""); //経由されたローカルIPも返ってくるのでそれを取り除く
var ccc;
ccc = bbb.match(/([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/); //残った文字列からIPアドレスに当たるものを正規表現で抽出。
var ddd;
ddd = ccc.toString(); //文字列に変換
var eee;
eee = ddd.replace(/\,([0-9]{1,3})\,([0-9]{1,3})\,([0-9]{1,3})\,([0-9]{1,3})/,""); //なぜかカンマ区切りのIPアドレスも返されるのでそれを取り除く
if (text.match(/対戦募集/)){
var zzz = text.replace("対戦募集","");
send(channel, prefix.nick + 'さんが、' + eee + ':' + zzz + 'で対戦募集中'); //表示部分
}
}


粗だらけですが、参考になれば幸いです。

以下の項目を必ず守ってください。守っていない書き込みは無視されるかも知れません。

あなたにとっては1回の質問でも、答える側は1回ではないことを理解してください。

  • 文章はきちんと状況が伝わるように丁寧に書いてください。
  • 話し言葉での書き込みは禁止します。
  • 過去ログを検索して確認してから書き込んでください。
  • 内容がわかるタイトルをつけること。要望する場合は[要望]を先頭につけること。
  • 動作確認はかならず最新版で行ってください。
  • 不適切な文章は、管理人が削除、編集することがあります。
名前*
メッセージ*
パスワード (編集・削除に使用。16文字以内)