「Oracle9iApplicationServer」上で環境変数を取得 | 闇プロジェクト::zoe

「Oracle9iApplicationServer」上で環境変数を取得

Oracle9i Application Server9.0.2.3を使用して社内イントラを開発しているのだけど、
社内のセキュリティ監視ソフトを入れるために、

・クライアントPCのコンピュータ名(ホスト名、NetBIOS名)

をpl/sqlで作られたページから取得したい。

というお願いをされて色々と調べた。


PHPで言う、「getenv("REMOTE_HOST")」に対応するAPIを探すと、

wwctx_api パッケージ
「wwctx_api.get_ip_address」でIPアドレスを取得できるらしい。
でもクライアントのホスト名を取るのはないよう。。

owa_sec パッケージ
・「owa_sec.get_client_hostname ファンクション」
 でずばりクライアントのホスト名を取得可能
 IPもowa_sec.get_client_ipでOK

owa_util パッケージ #リンクPDFです
・「owa_util.get_cgi_env(param_name in varchar2) ファンクション」
 でCGI 環境変数を取得可能で、「'REMOTE_HOST'」を指定すると
 クライアントのホスト名を取得可能
 その他「REMOTE_USER」とかCGI環境変数を指定できる

ということがわかった。
でも何故か、

HTP.P('REMOTE_HOST : '||owa_util.get_cgi_env('REMOTE_HOST')||'<br>');

のように書いてホスト名が取れるかチェックするが、ダメなよう。。


原因は、9iasの下で動いているapacheのhttpd.confにある、
HostnameLookups ディレクティブにありました。

クライアントの IP アドレスの DNS ルックアップを有効にする

無事ONにしたらホスト名取得ができまちた。
めでたしめでたし。

それにしても「Oracle9i Application Server」なんか使ってる人口自体が少ないのか、情報少ないです。
こんな基本的な関数でもGOOGLEの検索結果17件とかなんですもん。

#HostnameLookupsをONにしたら結構パフォーマンスが劣化した。
#これはDNSの性能に依存するのかな。

isi