|
>>2061-2071 なぜ HELO や EHLO を送るのかという話ですが、http://www.sk-jp.com/book/javamail/ の本には helo は、Sender MTA んもホスト名を記述することになっている。 しかし、現在はここに何を書いても意味をなさないようになって いる。なぜなら、現在ではクライアントがグローバルなホスト名を 持たないことが多いので、記述すべき内容がない & 正しいかどうかを 検証する手段もない。 というようなことが書いてあります。なので、歴史的な事情、というのが一点。 さらに http://djbdns.jp.qmail.org/djb/smtp.html にあるように、EHLO のレスポンスにより、その SMTP サーバで使用可能な コマンドがわかるので、MUA はこれを読んで適切なコマンドを送るように すべき、というのが一点。 …でどうでしょうか? (そんなことはわかっておられるような気が とてもしますが) ちなみにこの本、JavaMail (Java 用 POP・SMTP・IMAP の API) を 使う人なら文句なくおすすめです。 >>2140 椎 > であれば, submit が含まれている form の target に "_top" を > 指定すれば良いだけに思えますが・・・ ああ、なるほど。ごもっともです。 |
|
始めまして。 C言語のネットワークプログラミング参考にさせて頂いて おります。m(_ _)m 一つ質問なんですが、httpsのサイトを取得する時、 プロキシー経由の場合はどのようになるのでしょうか? google等で検索してみたのですが、分かりませんでした。 最初にプロキシーに対して、 CONNECT **.com:443 HTTP/1.0 HOST: **.com って感じでやるのかなぁって所まで分かったのですが、、 ご存知の方いらっしゃいましたら、ヒントだけでも頂きたい です。宜しくお願い致します。 |
|
長文ですみません……。 >>2115 68user > " の中に " をそのまま書いた その通りです。うっかりしてました。 > form の action です。 htmlと同じなのですね。 strはよく見るのですが,hogeとかfugaは知らなかったので……。 よければ意味を教えて下さい。 > つまり全く同じコードであって、同じバイト列を EUC-JP と解釈するか、 > Shift_JIS と解釈するかで表示が違う、ということになります。 なるほど。 > print "Content-type: text/html; charset=EUC-JP\n\n"; > と適切なエンコーディングを指定してやればよいです。 やってみましたが,同じ結果でした。うーん……悩む……。 ちなみにこうする前は, Content-type: text/html\n\n と <META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=x-euc-jp"> を入れていました。 > > jcodeのh2z_eucを使っても上手くいきません。 > この件は具体的に書いたスクリプトを提示して下さい。 require 'jcode.pl'; jcode::convert(\$str, 'euc'); jcode::h2z_euc(\$str); です。 > なるほど。ただその手法は壊れる確率は低いけど正確なカウントは > できないように見えるので、ある意味「逃げ」かなぁとは思います。 > 完璧な排他ができないはずはないと思っていますので。 そうですね。 私は「累計」を正確にカウントすることに意味があるのか疑問なので (カウンタは目安だと思っているので)気にしていないのですが, プログラム的にはつきつめる価値はあると思います。 >> 2152 > であれば, submit が含まれている form の target に "_top" を > 指定すれば良いだけに思えますが・・・ formにtargetが使えることを知りませんでした。 やってみたら上手くいきました。ありがとうございました。 > > EUCでconvertする前に文字化けしてしまうので(?) > というのは, どのように確認されましたか? いえ,確認できていないので(?)を付けています。 ただ,convertした後に半角カナを拾い出すスクリプトを入れていて, 文字化けした後の文に含まれている半角カナは拾うことができているので, なんとなくそうなのかな……と思いました(根拠になっていませんね)。 例)半角カナで「明アイウエオ」とすると「フタ竺軸宍雫七」(フタ:半角カナ)に 文字化けし,「フタ」を拾い出すことができています。 > スライス? すみませんが,意味がわかりませんでした。 ちなみに,このやり方は本屋で買った書籍から知りました。 |
|
>>2157 椎 > hogeとかfugaは知らなかったので……。 hoge の意味ですか? ならこちらを。 http://www.selab.tutkie.tut.ac.jp/~yoshida/hoge.html > require 'jcode.pl'; > jcode::convert(\$str, 'euc'); > jcode::h2z_euc(\$str); それで正しいと思います。 それでも化けるなら、文字列処理をしている全ての処理 - ブラウザから渡された「%8e%b1%8e%b2」というような URL エンコード された文字列 - & で split した文字列 - = で split した文字列 - URL デコードした文字列 - EUC に変換した文字列 で、print 文でデータを出力してみて下さい。そしたらどこで化けて いるかわかるでしょう。また、フォームが書いてある HTML の文字 コードが何になっているかも調べて下さい。 わからなかったら、最小限まで切り詰めたソースを見せて下さい。 >>> if ((@file1[9]) > (@file2[9])) { >> スライス? > すみませんが,意味がわかりませんでした。 $file1[9] が正しい、ってことでしょう。 > ちなみに,このやり方は本屋で買った書籍から知りました。 $file1[9] や (@file1)[9] なら正しいですが (わざわざ後者の書き方を する必要はありませんが)、@file1[9] は誤りです。本当にそう書いてあるなら その本は捨てましょう。 >>2156 Nira > CONNECT **.com:443 HTTP/1.0 > HOST: **.com ここまでは正しいと思います。その後は暗号化したリクエストを 送りますが…暗号化まで自力でやろうとしておられます? |
|
>>2158 68user ご返答ありがとう御座います。 >ここまでは正しいと思います。その後は暗号化したリクエストを >送りますが…暗号化まで自力でやろうとしておられます? CONNECTメソッドまでは正しいですか。 暗号化を自分でやるだけの知識は無いです。(--;) CONNECTした後は、サンプル通りのにやっているのですが、 SSL_connect()で0が返ってきます。 方法が正しいなら他の部分のバグかもしれないっすね。 そういえば、httpsの取得に良いサイトを発見しました。 https://www2.ggn.net/cgi-bin/ssl です。http://www.moxienet.com/lynx/ssl-testから リダイレクトされるサイトで、LynxでSSLが使用できる かどうかをチェックするためのサイトらしいです。 |
|
>>2158 68user ありがとう御座いました。 理由はわからないのですが動くようになりました。 SSL_load_error_strings(); の後に ERR_load_crypto_strings(); ERR_load_SSL_strings(); OpenSSL_add_all_algorithms(); を追加してみたら、難なく動きました。(--;) http://www.openssl.org/docs/crypto/BIO_f_ssl.html のサンプルを見てたら、上記3つの関数を呼んでいたので 真似してみました。 お騒がせ致しました。m(_ _)m |
|
はじめまして 最近CGIを作りはじめたして、問題が・・・ サーバはUNIXでCGIの処理を行なった後に作られたファイルの所有権がすべてnobodyになってしまっていて、その作られたファイルの操作が全くできなくなってしまいました。所有権の変更も出来ないんです。 だれか助けて下さい。。 おねがいします。 |
|
>>2159 Nira > そういえば、httpsの取得に良いサイトを発見しました。 ありがとうございます。このページをサンプルとして載せておきます。 >>2161 あやの > その作られたファイルの操作が全くできなくなってしまいました。 #!/usr/bin/perl system("rm -f ファイル"); print "Content-type: text/plain\n\n"; print "File removed.\n"; というような CGI スクリプトを作って、ブラウザから CGI に アクセスすれば消せます。 > 所有権の変更も出来ないんです。 普通ファイルの所有者を変更できるのは root のみです。 # 設定次第でできる OS もありますが。 よって、 - 事前にファイルを作成しておき、nobody が中身を変更できる ようにパーミッションを設定する。 - ファイルの所有者は nobody とし、他のユーザがそれを 参照・変更できるようにパーミッションを設定する。 - ファイルの所有者を nobody 以外とする。 サーバ管理者に suExec や cgiwrap を入れてもらうか、 自分で suid なプログラムを作る。 # http://x68000.startshop.co.jp/~68user/webcgi/permission.html のいずれを選ぶ、ということになります。 |
|
はじめまして、こんばんはっす。 突然ですがシェルスクリプトをつかってファイルを 書き換えようとしてるのですが "ディレクトリースタックの番号指定が深過ぎます." とコメントされ動いてくれません。どういうことなんでしょうか? ちなみに このシェルスクリプトです。 わかるかたがいたら教えて下さい。 #!/bin/tcsh set d=1 while(d<=16){ cat -n invar3_$d.dat > ninvar3_$d.dat d++} end |
|
>>2163 けんじ 突っ込みどころがたくさんありすぎて書ききれないので、とりあえず 動くものを置いておきます。 #!/bin/tcsh set d=1 while ( $d < 16 ) cat -n invar3_$d.dat > ninvar3_$d.dat @ d = $d + 1 end まずはマニュアルか、初心者向けの csh プログラミングの本を 読んで下さい。よい本が見付からなければ sh で書くのも手です。 sh なら結構な種類の本が出ています。 |
|
すいません、丁寧に教えていただき ありがとうございます。 はい、もっともっと勉強していきます! ただ、perlやshではうまくいってくれるのですが なぜかcshでは教えてくださったようにしても "ディレクトリースタックの番号指定が深過ぎます." といって動いてくれません。 特になにも変更等していないのですが、、、、。 なにはともあれありがとうございました! |
|
とても長いCGI処理がしたくてforkで子プロセスに処理を投げてあげたときは、ブラウザがすぐ開放されることは分かったんです。でも、処理中にエラーとか発生したときは見た目で分からなくなっちゃうんですよね?? エラーのときはなんか表示させたいのですが良い方法はあるのでしょうか? それとも長い処理はもっとfork以外の違う方法があるんですかね?? よろしくおねがいします。。。 |
|
>>2165 けんじ > ただ、perlやshではうまくいってくれるのですが perl と sh と csh は全く別物ですけど、それは理解されてますか? > 特になにも変更等していないのですが、、、、。 という文章は、sh で動いたものをそのまま csh でも動かそうと しているように見受けられます。 > "ディレクトリースタックの番号指定が深過ぎます." $d<=16 を d<=16 と書けばそうなります。 >>2166 かな 掲示板の一番上にある「使い方」を全く読んでいませんね。 # http://www.parkcity.ne.jp/~chaichan/qanda/qa1999.htm?01-10-03-19-11 |
|
>>2158 68user > print 文でデータを出力してみて下さい。そしたらどこで化けて > いるかわかるでしょう。また、フォームが書いてある HTML の文字 > コードが何になっているかも調べて下さい。 やってみたら,どこで化けているかわかりました。 jcode::convert(\$str, 'euc'); で化けていて,これを削除したら化けなくなりました。 なぜでしょうか? フォームが書いてあるHTMLの文字コードはeucにしています。 その場合は,コンバートする必要がないということでしょうか? とりあえず解決したみたいなのですが(?), 気になるのでぜひ教えて下さい。 > $file1[9] が正しい、ってことでしょう。 あ,確かに。 本からそのまま写して問題なく動いていたので 全然気付きませんでした。 人に見せると恥ずかしいので,早速,修正しました。 ありがとうございました。 > その本は捨てましょう。 あはは(^^; 確かに,少なくとも私のような初心者は 正しい記述の本で勉強した方がいいでしょうね。 私でも気付くような間違いがあちこちにあることは確かです。 でも,プログラミングのアイデアというかミソというか 参考になる点もたくさんあって,結構重宝してます。 |
|
とても初歩的な質問だと思いますが、教えて下されば幸いです。 掲示板を最近設置したのですが、サーバがアメリカにあるため 時差があるタイムスタンプをします。この時間を 16 時間早めたいのですが どのような記述をすればいいのか、わからないのです。恐らく下記の一行が関係するのだと思います。 $TimeDiff = 0; よろしくお願いいたします。また、過去ログを一応見ましたが既出の質問であった場合はお詫び申し上げます。 |