朝日奈アンテナの使い方
Version 2.110
1999/09/02
朝日奈アンテナのページへ
片桐雅代のページへ
目次
パッケージの内容
- 朝日奈アンテナを使用するには、perl, nkfが必要です。
事前に用意してください。
- hina.ph, hina.pl, hinadc.pl, libhina.pl, libtime.pl, jcode.plを
同じディレクトリに置きます。
- 環境設定、入出力の設定、自動巡回の設定を行います(後述)。
hina.phを使用する環境に合わせて編集します。詳しくはhina.phのパラメータ設定をごらんください。
定期巡回の設定
- 定期巡回用スクリプトを用いるのが楽でしょう。サンプルのhina.shを自分の環境に合わせて編集してください。
- 例では、入力をhina.cfgというファイルにまとめて記述し、hina.htmlを出力として得るようになっています。
- PROXYを通す場合は、hina.phの$HINA_PROXYの部分をPROXYサーバのアドレスに変更してください。
- このhina.shをcronで定期的に作動させれば、定期巡回が実現します。cronの設定の仕方はシステム管理者に聞くなどして調べてください。
- 朝日奈アンテナは、「もろこみぃ?」時に標準エラー出力にメッセージを出力します(異常ではありません)。システムからの報告メールが邪魔な場合は、cron.txtを参考にして報告メールを抑制するといいでしょう。
- V1.10以降は、標準エラー出力へのメッセージ出力を行わなくなりました。(プログラムの異常終了時はこの限りではありません)
更新時刻キャッシュ
- 実はV1.20から実装していたのですが、同一URLに対しては更新時刻情報をキャッシュするようにしているため、一度の処理中に同一URLで参照されるコンテンツの更新時刻を何度調べても、HTTPリクエストは一度しか行いません。
- <A>タグにおいて、virtual指定を行った場合には、取得した情報は、hrefで指定したURLとvirtualで指定したURLの両方に対応する情報としてキャッシュされます。
アンテナ間通信
- 朝日奈アンテナは、複数のアンテナ間で更新時刻情報を共有することを
考慮して設計されています。ここでは、アンテナ間での更新時刻情報共有について説明します。
- 現在のバージョンでは、hina.di形式による通信と、
hina.txt形式(HTML)による通信に対応しています。どちらも、実際の情報伝送は
HTTPで行われます。また、hina.di形式のほうが高度な情報を伝達できます。
- DIRPによる通信に対応していますが、動作確認は十分行っていません。
- hina.di形式およびDIRPによる通信の詳細は
1.2フォーマットを参照してください。
また、hina.di形式やDIRP使用を使用する場合は、
前回取得した情報を正しく再利用できるよう設定されている必要があります。
hina.pl の後の第1パラメータが正しく設定されているか注意してください。
- hina.di形式、DIRPのデータフォーマットに関する詳しい説明は今回は省略します。
以下の説明は、hina.txt形式についてです。
- 朝日奈アンテナの出力HTMLには、自動的に以下のようなコメントタグが
付加されます。
これは、他の朝日奈アンテナが更新時刻情報を取得する際に用いられます。
- <!--HINA_OK ccyy/mm/dd HH:MM [C]-->
- 更新時刻取得に成功した場合に出力されます。ccyy,mm,dd,HH,MM, Cはそれぞれ、更新時刻の年、月、日、時、分および更新時刻情報の年齢をあらわす2桁(ccyyは4桁・Cは桁数不定)の数値です(C以外ゼロサプレスは行いません)。
- V1.27から更新年はccyyの4桁で扱うようになりました。朝日奈アンテナから更新時刻情報を取得している他エージェント作者の方は注意してください。
- なお、更新年が不明の場合は推定値が用いられますが、以前のバージョンとの互換のため、"0000" を取得すると更新年不明と認識し、推定を行います。
- Cは、自力で更新時刻を得た場合(F/H/Gモード)では0、
朝日奈アンテナ(V1.341以降)以外から情報を得た場合には2、
朝日奈アンテナ(V1.341以降)から情報を得た場合は1以上の数値となります。
- <!--HINA_TIMEOUT-->
- 相手ホストに接続できなかった場合に出力されます。
- <!--HINA_UNKNOWN-->
- 更新時刻情報が解析できなかった場合に出力されます。
- <!--HINA_BUSY-->
- 相手ホストに接続後、更新時刻情報取得がタイムアウトした場合に出力されます。
- <!--HINA_REMOTE_OUT-->
- 更新時刻情報ファイルからの更新時刻情報取得ができなかった場合に出力されます。
- V1.12からは、内部エラーが発生した場合にも出力されるようになりました。
- V1.341からは、P/Rモードでの情報取得失敗はすべてこのメッセージを
出力するようになりました。他エラーメッセージの伝播は行われません。
- <!--HINA_NOT_FOUND-->
- コンテンツが存在しなかった場合に出力されます。
- <!--CERN-->
- 相手ホストがCERN httpd、MS IISなどを使用している場合
(すなわち、%aがヌル文字列に置換される場合)に出力されます。
- 朝日奈アンテナ以外のシステムの出力からの情報も取得できる場合があります。
(例)おうよう君、べんりくん(右側の段では正常に取得できない場合あり)
ちょださー対策
- ここでは、誰もが一度は通る道である(笑)、ちょださー対策の方法を
ちょっとだけ説明します。
- 環境により異なる部分はあると思いますが、サンプルのhina.ph, hina.cfgを
用いるような場合を例にします。
- 以下のようなコマンドを実行すると…。あとはあなたが使い方を考えてください。V1.10からはメッセージがわかりやすくなっていると思います。
nkf -e hina.cfg | grep masshy/d | perl hina.pl -d
- もっとも、V1.10以降は自動ちょださー対策をするようになったので、「誰もが一度は通る道」ではなくなったかも知れませんね。