• ベストアンサー

自宅サバーにアクセスしてきたIPアドレスの取得

自宅サバーにアクセスしてきたグローバルIPアドレスの取得をdelphiで行いたいのですが可能でしょうか? やりたい事は特定のグローバルIPアドレス以外はwebプログラム(cgi)を使用できないないようにしたいです。特定の場所から接続された時のみ、指定のソフトでアクセス制限できるようにしたいのですが・・・ 使用OS windows server apache 2.0.64 delphi WebBroker CGI プログラム で判断できる事  2日間ずーっと探しているのですが、解決方法がありません、どうかよろしくご教授くださいませ。    

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.3

>環境変数からのIPアドレス取得して、アクセス制限は時間がかかり向かないのですよね?無知でもうしわけありません。 いや、べつに、一長一短なので、どちらでも良いです。 案1:CGIプログラムで判断する方法: ・短所:特になし。強いて言えばプログラムに数行追加が必要。 ・長所:アクセス出来ないという画面を自由にデザインできる。 案2:Apacheでやる ・短所:アクセス出来ないというエラー画面はブラウザが自動的に出すので、理由などを相手に伝えられない ・長所:CGIプログラムの修正は不要 >特定のプラグラムだけApach eで制限する方法ってありますか?どうかよろしくお願いいたします。 特定のファイルだけを制限できます。 そのファイルのあるディレクトリの .htaccess に、 <Files "foo.cgi"> Order Allow,Deny Allow From 192.168.0.1 </Files> とか書きます。

fushikihana
質問者

お礼

ありがとうございます、嬉しいです。 .htaccess で制御すればいいのですね。 考えつきませんでした、助かりました、感謝いたします。 試してみます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

WebサーバーにApacheを使うのであれば 環境変数 REMOTE_ADDR にクライアントのグローバルIPアドレスがセットされているので それの中身を取り出して、比較すればよいと思います。 ただ、Apache側で制御してしまったほうが楽ではないですか? order deny,allow deny from all allow from {IPアドレスまたはネットワークアドレス}

fushikihana
質問者

補足

ありがとうございます、感謝申し上げます。 Apache側で制御したいのですが、アクセス制限は1本のプログラムのみで、他は制限なしにしたいのです。 接続と同時に環境変数を取り出せるのでしょうか? どうやって取り出すのか? TEXTファイルから?でしょうか?お手数おかけいたします。どうぞよろしくお願いいたします。

すると、全ての回答が全文表示されます。
  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.1

環境変数 REMOTE_ADDR に入っています。 GetEnvironmentVariable('REMOTE_ADDR') で取れるんじゃないでしょうか。 Apacheの機能でアクセス制限する方法もあります。

fushikihana
質問者

補足

ご回答ありがとうございます、本当に助かります。 環境変数からのIPアドレス取得して、アクセス制限は時間がかかり向かないのですよね?無知でもうしわけありません。 特定のプラグラムだけApach eで制限する方法ってありますか?どうかよろしくお願いいたします。

すると、全ての回答が全文表示されます。

関連するQ&A