[1] [[w3m]] は local file ([CODE(URI)[[[file:]]]] URI であらわされる資源) を [[HTTP]] のように [[CGIスクリプト]]として扱う local CGI 機能があります。少々の w3m の動作の取得・制御も可能です。 [2] 安全上の理由から、 local CGI script と認識され得るのは [CODE(URI)[file:///cgi-bin/]] 以下とかに限られます。 (このディレクトリは仮想で、実体は w3m の設定で指定します。) [18] JG4ouI khkuxlhcxnme, [url=http://hfkenoyxgeol.com/]hfkenoyxgeol[/url], [link=http://ytydogjjvalp.com/]ytydogjjvalp[/link], http://usfgegqepsqy.com/ ([[eeuwvlu]] [dksyxv@axpefo.com] [WEAK[2008-07-08 09:31:57 +00:00]]) [19] JG4ouI khkuxlhcxnme, [url=http://hfkenoyxgeol.com/]hfkenoyxgeol[/url], [link=http://ytydogjjvalp.com/]ytydogjjvalp[/link], http://usfgegqepsqy.com/ ([[eeuwvlu]] [dksyxv@axpefo.com] [WEAK[2008-07-08 09:32:11 +00:00]]) [20] Very Nice Site! Thanx! http://excellent-credit-card.blogspot.com ([[prepaid card]] [carli@gmail.com]) [21] Very Nice Site! Thanx! getting a gas card with poor credit bad credit creditcard approvals want a creditcard for bad credit get approved for credit with bad credit mastercard less than perfect credit ([[banamex]] [horrible credit] [WEAK[2008-08-22 17:41:18 +00:00]]) [22] Very Nice Site! Thanx! credit offers for bad credit no annual fees criedt cards for people with bad criedt no set up fees only pre approved bank cards by first premier bank bad credit retal cards www.all creditcards for bad credit ([[bad cards]] [orchard card] [WEAK[2008-08-22 21:10:56 +00:00]]) [23] Very Nice Site! Thanx! bad credit nz mortgage bad credit loans.com premier bank gold card denied bad cried cards poor credit score and applying american express card ([[establish]] [bacruptcy loans] [WEAK[2008-08-22 21:23:30 +00:00]]) [[#comment]] * メタ変数 [9] [[Apache]] などと同じように、[[メタ変数]]は[[環境変数]]として提供されます。 [[CGI/1.1]] で規定されているほとんどのメタ変数を用意してくれます。独自拡張の [CODE(CGI)[[[REQUEST_URI]]]] にも対応しています。 詳しくはソース (>>8) を見て下さい。 [CODE(CGI)[[[HTTP_*]]]] 変数群は、 [CODE(CGI)[[[HTTP_REFERER]]]] 以外は用意しないようです。 [10] 注意しておきたい点としては、 [CODE(CGI)[[[REMOTE_ADDR]]]] と [CODE(CGI)[[[REMOTE_HOST]]]] には常に [CODE(CGI)[[[127.0.0.1]]]] と [CODE(CGI)[[[localhost]]]] が、 [CODE(CGI)[[[SERVER_NAME]]]] と [CODE(CGI)[[[SERVER_PORT]]]] にも常に [CODE(CGI)[localhost]] と [CODE(CGI)[[[80]]]] が入るようになっています。 [CODE(CGI)[[[SEFVER_PROTOCOL]]]] も常に [CODE(CGI)[[[HTTP/1.0]]]] です。 最後の2つは local でない CGI を emulate するためでしょうが、 このおかげで local でない CGI と local CGI を完全に区別する方法はありません。 [11] とはいっても、 local でない CGI と local CGI を区別するのは簡単です。 [CODE(CGI)[[[SERVER_SOFTWARE]]]] には普段の HTTP 要求で [CODE(HTTP)[[[User-Agent]]]] 欄に送る値が入っていますから、これが [CODE(CGI)[w3m]] で始まれば w3m が local CGI 機能を使っていると分かります。 (w3m variant でこの文字列が [CODE(CGI)[w3m]] で始まらなかったら困るかもしれませんが。) [14] 変数 [CODE(CGI)[[[LOCAL_COOKIE_FILE]]]] には、 local [[Cookie]] に使用できるファイルの名前が入ります。 古い版 (2003年1月くらいの版まで) では、 [CODE(CGI)[[[LOCAL_COOKIE]]]] が使われてました。 こちらの変数には[[セッション]]識別子に使える値が入るみたいです。 [12] この他に、 [CODE[W3M_[VAR[*]]]] 変数群から情報を取得することもできます。 [[#comment]] * CGI 頭欄 [13] w3m 独自の [CODE(CGI)[[[w3m-control]]]] 欄が用意されています。 これを使うと任意の機能を実行できます。 [CODE(file)[README.func]] に機能の一覧があります。 この欄を複数個出力すれば、その順に実行できます。 なお、 local CGI スクリプトからではない通常の [[HTTP]] [[応答]]でこの欄は認識されません。[WEAK[されるとしたら危険なことに。。。]] [[#comment]] * 参考文献 - [7] ''w3m manual'' - [8] ''w3m/w3m/local.c'' : 実装のソース。 - [15] : 実際の local CGI を使ったスクリプトがありますから、参考になるでしょう。 - [6] w3m-990406 以降で実装されている。 - [3] w3m の local CGI 機能 - [4] w3m の local CGI その2 - [5] - [16] あとは 2ch の w3m スレの話題にも結構上がります。スクリプトが投稿されていたりもするので参考になるかも。 [[#comment]] * メモ [17] [CITE@en[The ELinks Manual]] ([[Petr Baudis, Jonas Fonseca Madsen, Miciah Dashiel Butler Masters]] 著, [CODE[2007-03-18 16:03:15 +09:00]] 版) ([[名無しさん]])