• 締切済み

pythonで作ったCGIでREMOTE_HOSTを得る方法

apache + python2.4を使っています。mod_pythonは使ってません。 pythonでCGIを作りました。その中で環境変数REMOTE_HOSTを得たいと 思っていますが、os.environモジュールからは得られません。 os.environ["REMOTE_HOST"] CGIの中で REMOTE_HOST を得る方法を教えていただけませんか?

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

apacheの設定で、HostnameLookupsが無効になってないかを確認してみては。

関連するQ&A

  • REMOTE_HOST

    APACHE2.xで、REMOTE_HOSTを返すまでの動作がどうなっているか、どなたかわかりませんでしょうか? DNSに問い合わせたものを返すのか、あるいはリクエストに含まれるなんらかの値を返すのか。 というのは、REMOTE_HOSTでリクエスト元のリモホを取得しているのですが、一部リクエストでREMOTE_HOSTが偽装されているようなのです。 ネットで調べても、内部で問い合わせているだけという話もあれば、偽装は可能なのでREMOTE_HOSTとREMOTE_ADDRを比較することは有効という話もあり… APACHEの仕様書も見つからず…

  • $ENV{'REMOTE_HOST'}について

    CGIにて$ENV{'REMOTE_HOST'}を取得したところ スパム投稿なのですが、$ENV{'REMOTE_HOST'}が IPアドレスの値である142.54.182.186が入っていました。 普通はkd182249232116.au-net.ne.jp などという形になると思うのですが 142.54.182.186 となっていることが通常ありえるのでしょうか? リモートホストを取得し、IPアドレスの形式であった場合、 この投稿者を弾いてしまっても問題ありませんか?

    • ベストアンサー
    • CGI
  • pythonでのCGI作成

    python で cgiを作成しているのですが、 if f.getfirst('btn1'):  ### 外部スクリプト起動 ###  os.system("python /var/www/cgi-bin/test.py") のように、このボタンが押されたら外部スクリプト起動のようにしたいのですが、どうすればいいでしょうか? たとえば、os.system("mkdir test")のようにすれば、上手くいくのですが、python ~やperl ~のようにすると上手くいきません・・・ (もしかするとapacheの設定か何か必要なのでしょうか?) 初心者丸出しの質問かもしれませんが、よろしくお願いします

    • 締切済み
    • CGI
  • 【 REMOTE_HOSTの値の取得方法について 】

    既製のCGIを設置するのがイッパイイッパイの 初心者ですm(__)m REMOTE_HOSTの値を取得して表示させたいのですが 当方レンタル中のサーバーの初期設定では取得できず 下記の如くの手順で取得するように表示してありましたが どうにも理解できず困っております。 下記の「Perl内」とは何処の事を指しているのか アドバイスを頂きたくお願い申し上げます。 ****以下、該当サーバーの説明文引用***** 【 REMOTE_HOSTの値の取得方法について 】 レンタルサーバーの処理速度を優先して、初期状態ではIPアドレスからDNSの参照をしないように設定している為、REMOTE_HOSTの値を取得したい場合はPerl内で下記の記述をして下さい。 $addr = $ENV{'REMOTE_ADDR'}; $host = gethostbyaddr(pack('C4',split(/\./,$addr)),2) || $addr;

    • ベストアンサー
    • Perl
  • REMOTE_USERは何故取得できない?

    ApacheのWebサーバーに、クライアント使用者の身元を確認したいのです。 サーバーは簡単認証を設定してあります。 CGIプログラムに、$ENV{'REMOTE_USER'} で環境変数を取得しようと思いますが、 何の情報も得られませんでした。 また、http://www.futomi.com/lecture/env_var/ のサンプルプログラムを使って 全ての環境変数をプリントアウトしましたが、REMOTE_USER はありませんでした。 何故でしょうか。 ご存じの方がいれば是非教えて頂きたいのです。どうぞ宜しくお願い致します。

    • 締切済み
    • CGI
  • cgi環境変数の変更方法?

    cgi環境変数の変更方法? perlで書かれたcgiプログラムがあります。 そのcgiではcgi環境変数内のREMOTE_ADDRを読出し、特定のIPアドレス【特定の端末】であれば特別処理を行っております。 今回、別の端末【別のIPアドレス】から同じ特別処理をする必要が生じました。 サーバ側のcgiプログラムを修正すれば簡単なのですが、著作権上の問題があって出来ません。 そこで端末側のプログラムがC#のWebClientクラスを使用してサーバと交信しているのを幸いとして myClient.Headers.Set("REMOTE_ADDR", "xxx,xxx,xxx,xxx"); ← 従前のIPアドレスへの変更 のステートメントを追加して強制的にIPアドレスを変更しようとしました。 ところがサーバ側のcgi環境変数には、HTTP_REMOTE_ADDRという新しい要素が加わっただけであり、目的とするREMOTE_ADDRを修正出来ません。 調べてみると、apacheがHTTP_タグを追加しているとのことです。 この追加をやめさせREMOTE_ADDRに当方が望むIPアドレスを設定することは可能でしょうか?

  • PythonによるCGIの開発環境の構築

    Pythonを使ってCGIを開発するために、とりあえず下記の環境を整えました。 Python 2.7 Eclipse 3.7.0 また、そのプラグインとして、AptanaStudio、Pydev 「Pydevで書いたスクリプトを、Aptana内蔵のWEBサーバー上で走らせて、ブラウザ上で動作を確認」、というのがやりたいことなんですけど、今は、Pythonの出力がコンソールに表示されたり、ブラウザで見るとソースが表示されるだけだったり、という頭の悪い状態に陥っています。 何をどう設定したらいいのか教えて下さい。 「そんなもんできねーよ!」という場合は、上記の環境をなるべく崩さずに、「Pythonで書かれたCGIの動作をブラウザ上で確認する方法」を教えて下さい。 「それも無理!」という場合は、「あなたのCGI(Python)開発環境」を教えて下さい。 初心者丸出しな質問で申し訳ありませんが、よろしくお願いします。

    • 締切済み
    • CGI
  • Pythonを用いてCGIを作る勉強をしています。

    Pythonを用いてCGIを作る勉強をしています。 さて、CGIHTTPServerでCGIのテストをしようとしたところ、ぜんぜん動いてくれません。ちゃんとファイルのパーミッションも755にしました。 自分の力だけではどうにもならなかったため、ここで質問させてもらいます。 どうしたらよいのでしょうか。 僕がつくったPythonのソース test.pyは #! /usr/bin python print "Content-type: text/html\n" print "<html><body>Hello!</body></html>" です。 本来ならブラウザで「http://127.0.0.1:8000/cgi-bin/test.py」 とすれば動いてくれるはずなのに以下のようなエラーメッセージが出ます。 localhost - - [19/May/2010 23:46:43] "GET /cgi-bin/test3.py HTTP/1.1" 200 - Traceback (most recent call last): File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/CGIHTTPServer.py", line 255, in run_cgi OSError: [Errno 13] Permission denied localhost - - [19/May/2010 23:46:43] CGI script exit status 0x7f00 PCの環境はMacOSX10.6です。 だれか分かる方。教えていただけないでしょうか?? よろしくお願いします。

    • 締切済み
    • CGI
  • apacheでCGIを動かす

    apacheでCGIを動かそうと思っていますが、どうしても出来ません。 環境は以下の通りです。 apache:1.3.35 OS:Windows2000 httpd.confの設定は 1.ScriptAlias /cgi-bin/ の行をコメントアウト 2.Alias /cgi-bin/ "E:/hoge/cgi-bin/"に変更してDirectoryタグを追加 3.AddHandler cgi-script .exeを追加 以上の3点をしましたが、新しく設定したディレクトリのcgiは動作しませんでした。 apacheのmodulesディレクトリの中にmod_alias.soというファイルが有りませんがそれは関係有るのでしょうか? また、apacheとtomcatの連携ということを以前行ったのですが、動かない事と関係あるのでしょうか? 文字数の関係で見づらい説明になっているかと思いますがよろしくお願い致します。

  • Pythonのモジュールやデータ型はどこにある?

    Pythonの本を読んでいて、 モジュールの内部構成の説明が無かったので質問です。 randomモジュールやdatetimeモジュール、date型などは Pythonのどこに格納されているのでしょうか? 実際にファイルの中身を見てどのような記述がされているのか確認したいです。 ちなみに環境は、 mac os X 10.6.8 にデフォルトで入っていたPythonを使っています。 よろしくお願いします。

専門家に質問してみよう