カレッヂ |
質問者 びわ
投稿日 6/14(木) 16:03:18
簡易ショッピングバスケットを使っています。 現在送られてくるメールには、 Remote-host : Remote-Addr : ***.***.***.*** というふうに、addrは表示されるのですが、 host欄は、空欄です。 webform.cgiの $host = $ENV{'REMOTE_HOST'}; $addr = $ENV{'REMOTE_ADDR'}; という所を $host = gethostbyaddr(pack('C4',split(/\./,$host)),2) || $addr; $addr = $ENV{'REMOTE_ADDR'}; と変えてみましたが、host欄は、空欄のままです。 どうしたら、host名を取得できますでしょうか? |
回答者 しあわせのツボ
[削除]
投稿日 6/14(木) 17:12:53
ホスト名が取得できないサーバも存在します。むしろその方が多いかもしれません。 まずはサーバの管理者に問い合わせてみて下さい。 |
質問者 びわ
[削除]
投稿日 6/14(木) 18:04:44
お返事ありがとうございます。 サーバーの説明には、「gethostbyaddr をご利用ください」 と書いてあります。 また、同サーバーに設置してある掲示板からのsendmailには ホスト名が表示されます。 というわけで、サーバーの問題は無いと思うのですが・・・ 他には、どんな可能性がありますでしょうか? |
回答者 しあわせのツボ
[削除]
投稿日 6/14(木) 20:16:15
$host = gethostbyaddr(pack('C4',split(/\./,$host)),2) || $addr; $addr = $ENV{'REMOTE_ADDR'}; は正しくないですね。これを使うなら $addr = $ENV{'REMOTE_ADDR'}; $host = gethostbyaddr(pack('C4',split(/\./,$addr)),2) || $addr; とするべきでしょう。 |
質問者 びわ
[削除]
投稿日 6/14(木) 22:19:30
>しあわせのツボさま できました〜!ありがとうございます。 順番が逆なだけで、全くダメなのですね。 調子に乗って、もうひとつ質問させて下さい。 他のcgiでやはりメールが届くようにしてある物があるのですが、 そのメールにはhostもaddrも書き込まれないのですが、この $addr = $ENV{'REMOTE_ADDR'}; $host = gethostbyaddr(pack('C4',split(/\./,$addr)),2) || $addr; をcgiに加える事で、ホスト名を取得出来るようになるのでしょうか? もし、加えるとしたら、cgiのどの位置に加えるかは決まっているの でしょうか? それとも、ここまでの事をやるには、もっとcgiについて勉強しない と無理でしょうか?恥ずかしながら、cgiの本とかを読んだ事はあり ません。 |
回答者 しあわせのツボ
[削除]
投稿日 6/14(木) 23:32:56
それを加えた上で「送るメールにこれも書いてね」と教えてあげないといけません。 当然、書くべき場所はスクリプトによって異なります。 |
質問者 びわ
[削除]
投稿日 6/15(金) 00:22:29
なるほど、なるほど。わかりやすい説明ありがとうございます。 少し先の目標として、いろいろなcgiの中身を見比べ、勉強して みます。本当にありがとうございました。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |