• ベストアンサー

レンタルサーバーのOSの細かい情報を得るCGIプログラム

レンタルサーバーのOSの細かい情報を得るCGIプログラムってなんの関数なりモジュールなりを呼べば良いのでしょうか? 環境変数とかだと、漠然と「UNIX」とかいう役に立たない情報が返ってくるだけなのですが、細かく知るときには、どうかくもんなんでしょう? C/C++もしくは、Perlでお願いします。

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

  • ベストアンサー
  • cocky
  • ベストアンサー率57% (232/402)
回答No.1

レンタルサーバの「OS」の詳細(Linux、FreeBSD、etc)を知るのはかなり難しいと思います。 レンタルサーバの「Webサーバソフト」であれば、HTTPヘッダのServer:(=環境変数のSERVER_SOFTWARE)でかなり詳細な情報が手に入りますが。 ただdmesgが使えるのであれば、Perlで open( MES, "dmesg |" ); $dmesg = <MES>; close( MES ); とでもすれば、dmesgコマンドの出力が$dmesgに入りますから、それを解析するというのも手ですが、書式は当然OSによって異なりますし、解析はかなり大変だと思います。

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

その他の回答 (7)

  • kamechan8
  • ベストアンサー率41% (5/12)
回答No.8

kokucho81さんの、 >このときに、必要なのがOSの分類とバージョン >(バージョンに関しては一致していなくても別に良い訳ですが…)です。 という記事を読む限り、OSのバージョンは不詳でも、種類がわかれば。。とのことですので、以下のサイトでチェックしてみてはいかがでしょう。 通りすがりのサイト管理者ですが、はずしていたらごめんなさいm(_ _)m

参考URL:
http://uptime.netcraft.com/up/graph/
kokucho81
質問者

お礼

貴重な情報ありがとうございます。 そうですね。外部より、環境変数を得ているし、OSの分類もわかりますので、簡易的に調べたり、CGIも置けないところで調べる分には良さそうですね。 無料ホームページリンク集作成組がおりますので、このページの利用を伝えておきます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • cocky
  • ベストアンサー率57% (232/402)
回答No.7

元の話に戻れば、シェル環境が使えず、CGIからdmesgやunameなどのOSコマンドを呼び出せないという前提であれば、CGIだけでOSの詳細バージョンやプロセッサタイプを知るのは無理でしょう。 私なんかは、そもそも無料サーバでそういう高度なプログラムを動かそう、というのはあまりにも虫の良すぎる考えではないか、と思ってるんですが…。

kokucho81
質問者

補足

「虫がよい話しだ」と言われれば「ぐむぅ」という感じなのですが、 まぁ、でも個人の楽しみでやるWEBサイトってそんなもんじゃないですか。 金をかけて満足してやれる環境も一つは欲しいけれど、 それとは別に、金をかけないでやって「つついている(何を?)」 状況を楽しむ側面もあるわけで、、、 (うぅ、徐々に本音がマズイですね。。。) とりあえず、C系の sys/utsname.h で対応・・・ってそれって結局 uname 呼び出しかい!っていうツッコミはありますです。ハイ(反省) perlはやっぱり無理っぽいですね~ こっそりunameもろ呼び出すしか… unameだったらバレても許してくれるかな(きっと)。。。 PHPは phpinfo() で情報を得れるみたいです。 まぁ、どこまでがコマンド呼んでいることになり、どこからはプログラム側で処理したことになるのか、疑問ですが、この当たりでダマしダマしうまい具合にやるしかなさそうですね。

全文を見る
すると、全ての回答が全文表示されます。
  • cocky
  • ベストアンサー率57% (232/402)
回答No.6

binary packageを利用するという話であれば、確かにソースのコンパイルよりは制限は緩くなるでしょうが、実際に利用するにはOSのバージョンだけでなく使用されているCPU種別がわからないと無理ですし、BSD系OSのpackageやLinuxのrpmなどはroot権限を持っていないと事実上インストールは困難ですから(しかもpackageやrpm同士の依存関係もある)、やはりOSのバージョンを判別するだけでは、全く無意味とは言いませんが、多くの場合はあまり意味を持たないと思います。 それに、そこまでおっしゃるなら、なぜ「管理者に対象となるライブラリやソフトの組み込みを依頼する」という選択肢が出てこないのでしょうか? おそらくおっしゃられている内容はレンタルサーバの運営サイドの想定範囲を明らかに超えている内容でしょう(でなければmakeを制限したりしないはず)。 もし本当にそのプログラムが必要だということが管理者に理解されれば、管理者側でインストールを行ってもらえる可能性だって決して低くはないと思いますし。管理者としても、ユーザが無理矢理インストールした不安定なプログラムを使われてサーバ全体の運用に支障をきたすよりは、自分で安定版をインストールしてユーザに提供する方を選ぶでしょう。 また、同じレンタルサーバでもHDDスペース借りではなくサーバ1台を丸ごと借りる方法だってありますし、最近はまるごとサーバ借りの値段もだいぶ安くなってきましたから、そんなに自分でインストールすることにこだわるのであれば、そういったタイプのレンタルサーバに移行することを考えた方がいいのではないかと思いますが。

kokucho81
質問者

補足

おっしゃるまでもなく私も基本的にはまず、一度管理者に依頼しています。 それに実は私自信ががレンタルしているメインサーバーは有料であり、設備も充実しているので、問題はないのです。 でも、同時に、そのような行動や環境を他の人にも適応できるとは考えていないわけで。。。 また、その環境を前提に『こういうツールがある』と解説してもあまり意味がないわけで。。。。 また、おっしゃるように、管理人がすぐ動いてくれれば良いですが、確かに今までの実際の体験上、有料サービスのの管理人は、すぐ動きます。 何か入れてくれ!といえば、大抵24時間以内にインストールされます。 しかし、無料の方の管理人は、そうそうは承諾しないです。 (というか個別の要望には対応しないものです。『検討する』とだけ言ったっきりですね。) ましてやその無料会員が5万人を超えていると、まず承諾しないと言って良いです。 どうも話しがずれてしまっているのですが、是々非々を問うているのではなく、 OSの種類とバージョンを入手するという方法はどうするのか? ということなのですが…

全文を見る
すると、全ての回答が全文表示されます。
  • cocky
  • ベストアンサー率57% (232/402)
回答No.5

OSにインストールされるライブラリ構成は、同じOSのバージョンでもインストール構成によって大幅に異なりますから、OSのバージョンを調べたところでお考えのようなことはおそらく無理だと思いますが。 例えばFreeBSDだと、インストール時の選択によってはa.out形式のバイナリ(2.2.xまでの形式)を受け付けず、ELFバイナリ(3.0以降の実行形式)しか実行できない構成も選べますし、またGNU系のライブラリはportsなどで追加インストールが必要になる場合も多いですが、これらの情報はOSのバージョン番号では判別できません。 そうなると個別にインストールされているライブラリをチェックして手動でコンパイルして行くしかないわけですが、これは対象となるOSに精通していないとまず困難な作業です。またこれらのライブラリ情報を一括して取得できるような機能も普通OSには付いていなかったはずです。 LinuxでもkernelのバージョンとlibcのバージョンぐらいはDistribution名とバージョンで判別できますが、それ以外のライブラリ構成となるとやはりインストール時の選択で大幅に変わってきてしまうことを考えると、そもそもmakeが提供されていない環境でC/C++のCGIを動かそうという考え自体が無理があると思います。

kokucho81
質問者

補足

ご指摘おそれいります。 でも、やはり、TELNETを提供しているところで、MAKEを提供しているところは少ないです。(普通に考えてもユーザー数を多く抱えるところは、MAKEコマンドの一般への提供は怖くてできないと思います。) 現実、ほとんどのレンタルサーバーの状況がそうなのですから、『考え自体に無理がある』とおっしゃられても解決の方向になってないわけでして… 与えられた情況下で少しでも良い方向へ持っていけるように模索しているわけです。 例えば、FLYなども、普通はMAKEファイルがないと組み込めませんが、OSを調べることによって、バイナリファイルを落としてきて、サーバーに組み込めます。 GDライブラリなどもコンパイル済みのものがあれば、組み込める可能性が高いと思います。でも、ソースからの組み込みとなると、おそらく違反を犯す(呼び出しを許されていないコマンドを呼び出す)しない限りは無理だと思います。 OSを知っても完全な情報が得られるわけではないですが、大きな指針には必ずなるはずです。 だって情報として意味がないのでしたら、ここ教えてGOOなどでも、『使用しているOS』を書いてください!とは補足しないはずですよね!

全文を見る
すると、全ての回答が全文表示されます。
  • cocky
  • ベストアンサー率57% (232/402)
回答No.4

なぜOSの詳細バージョンが必要なのかがわからないんですが。 何か調査でもされてるんですか?

全文を見る
すると、全ての回答が全文表示されます。
  • kazuya-i
  • ベストアンサー率21% (7/32)
回答No.3

逆にOSやバージョンによって変えなきゃいけないことって あるんですかね? OSによって 動いたり動かなかったりするのであれば いくつかの動作検証パターンを作ってしまえば OS バージョンの特定できるんじゃないですかね? はずしてるかな

kokucho81
質問者

補足

たびたび返答ありがとうございます。 具体的には、C/C++系のCGIや組み込みプログラムがそれに該当します。 一般的に、C/C++系のプログラムはある程度規模が大きくなると、普通はmakefileを使用しますが、一般的にレンタルサーバーのTELNETではMAKEコマンドは開放されていませんので、makefileでMAKEすることはできません。 では、makefile内を手作業でやれば良いではないか?と思うかもしれませんが、 大抵のmakefileでは、TELNETで提供されているコマンド外のコマンドが 呼び出されている行があり、結局はそのような場合は、既成のコンパイル 済みのバイナリファイルを探すことになります。 このときに、必要なのがOSの分類とバージョン (バージョンに関しては一致していなくても別に良い訳ですが…)です。 このとき、管理人の方に聞けば良いのですが、できればサクッと調べられると 長い目で見たときには管理人さんの手間も省けるのでありがたいのです。 (又、今後CGIが使用可能なレンタルサーバーのリンク集 などを作られる方なども、OSの分類とそのバージョンまでのっていれば、 レンタルスペースでありながら、とても強力なアプリケーションが インストールできる可能性も広がってくるため、いままでの容量や回線、サポート といった視点だけではない、新しい視点によるサーバー選びの芽が出てくる と思ってもいます。)

全文を見る
すると、全ての回答が全文表示されます。
  • kazuya-i
  • ベストアンサー率21% (7/32)
回答No.2

漠然としてますので何が知りたいかを 書いたほうがいいと思います。<OSの細かい情報 uname -a でOS周りの情報は帰ってきますが、

kokucho81
質問者

補足

普通にUNIXをユーザーとして使用していれば、確かにそうなのですが。。。 WEBページ作成のために、サーバーをレンタルする環境で、 TELNETは開放されてはいますが、普通コマンドは限られています。 CGI/SSIが使用可能ですが、OSコマンドをCGI経由で呼ぶのは禁止されています。 普通はレンタルサーバーはこういう環境ですよね。 このような環境で、OSのバージョンを正確に知らなければならないのです。 いままで管理人に直接聞くようにしてきたのですが。。。

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

関連するQ&A

  • Unix系のレンタルサーバの開発環境について

    Unix系のレンタルサーバでの開発環境についてお伺いします。Unix系ははじめてなので、OSのコマンドも勉強したいし、当面はPerlで、追加モジュールなども使ってプログラミングしてみたいです。どのような条件でサーバを探せばよいでしょうか? オススメのサーバなど教えていただけると助かります。どうぞよろしくお願いします。

    • ベストアンサー
    • Perl
  • おすすめレンタルサーバー

    レンタルサーバーを探しているのですが、 希望する機能としては、 telnet等を利用して直接シェル操作が出来ることと、 perlの他にC言語をCGIとして利用できる等の 出来るだけUNIX環境の自由度の高さです。 色々探した結果、 http://www.willnet.ne.jp/ http://home.isle.ne.jp/ というレンタル業者を見つけることが出来、 現在の所willnetにしようかと思っておりますが、 他におすすめの業者はないでしょうか? 追記ですが、 C言語をCGIとして利用可能と表記していなくとも、 telnetアクセスが許可されていれば可能なのでしょうか? サーバーをレンタルした経験がないので分からないのですが、 どうぞ宜しくお願い致します。 失礼致します。

  • VINE LINUXサーバーでCGIプログラムを動かしたい

    最近、デモ用の社内サーバーとして、VINE LINUX 2.1.5 の入ったPCをたてました。 クライアントはWindowsXPです。いくつかの社内用のプログラムを動かしています。 CGIプログラムを使用したいのですが、どのようにしたら良いでしょうか。 社内サーバーではなく、会社のホームページを表示させているサーバーは、レンタルサーバーで、CGIを使用しているので、CGIのプログラム自体は、自分でできます。 でも、CGIを使用する際の、サーバーの方の設定は分からないのですが。。 htmlを表示させ、CGIを動かしたみたのですが、CGIプログラムの内容がそのまま 表示されてしまいました。Perlをインストールするのではないかと思うのですが。。 だとしたら、VINE LINUX 2.1.5用のPerlのソフトはどこのサイトでダウンロードしてきたら良いでしょうか?

  • 無料レンタルサーバのCGIについて

    現在、有料レンタルサーバを利用していますが、以下のCGIモジュール(parl)がありません。 ・HTML::TreeBuilder で、このモジュールが利用(実装)できる、または個人でモジュール追加できる無料レンタルサーバがありましたら、教えて頂きたく思います。 すみませんが、よろしくお願いします。

    • 締切済み
    • CGI
  • レンタルサーバで自作のVBプログラムを動かしたい

    レンタルサーバで、自作のVisualBasic V6で作成したプログラムを動かせのでしょうか? 私が利用を考えているドメインキングでは、Perlで作成したプログラムを(cgiで)動かせるそうです。

  • レンタルサーバ探し

    以下の条件でレンタルサーバを探してます。 cgi(perl)を使いたい。 perlモジュールが使えるところ、特に画像処理系。 画像ファイルを保存したいので、それ用の容量(10Mくらい)も必要。 どなたか詳しい方、お願いします。

  • UNIXレンタルサーバー

    UNIXレンタルサーバー探しています。 できるだけ、安価で安心できるサーバーがいいなぁと思って探しているのですが、いろいろあって値段にも結構差があってどれにしていいのか探せば探すほど解からなくなってきました。 必要な条件は以下の通りです。 * オリジナルのCGIスクリプトの利用が許可されていること * UNIXサーバーであること * perlのバージョンが5以上 * sendmailの利用が可能であること ご存知のサーバーでよいところがあれば教えてください。 お願いいたします。

  • レンタルサーバで、cgiが暴走した場合の対応

    自宅Windows環境で、perlで書いたcgiを動かしていました。 そのcgiをブラウザで表示した際に、プログラムのエラー(無限ループだと思うのですが) 応答が無くなってしまいブラウザを強制終了させ、cpu利用率100%の perl.exe(だったと思うのですが)のプロセスを終了しました。 レンタルサーバでcgiが暴走した場合の対処法を教えて下さい。 "ssh"でレンタルサーバに接続し、暴走したプロセスをtopコマンドで確認できるでしょうか? コマンド"ps"で確認し、暴走したプログラムをkillで終了させることは一般ユーザでは無理でしょうか? 私の知らないキーワードを教えて頂ければ最高です。 宜しくお願いします。

  • 国外レンタルサーバーでのCGIプログラム

    今現在、国内のレンタルサーバーを使ってホームページを開設しています。 ホームページには、掲示板・カウンター・フォームの CGIを利用しています。 今度、レンタルサーバーを中国の方に移したのですが、 CGIがうまく作動されません。 パスなどの確認はしたので、まず間違いはないのですが・・・ 日本のCGIプログラムは、海外では全く使えないのでしょうか? それとも、どこか修正する必要があるのでしょうか? どなたかご存知の方がいればお教え下さい。

    • ベストアンサー
    • CGI
  • サーバーモジュールとCGIプロセッサ

    の違いを教えてください 「CGI変数を含む他の環境変数は、PHPがサーバーモジュールとして実行さ れているのか、CGIプロセッサとして実行されているのかによらず設定さ れます。」 の意味がわからず困っています

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • DCP-J4220Nで印刷しようとすると、A4用紙が自動的にA5に縮小されて印刷されるトラブルが発生しています。
  • Windows11を使用しているWi-Fi接続の環境でこの問題が発生しています。
  • ブラザー製品に関する質問です。
回答を見る

専門家に質問してみよう