[PHP-users 9821] サーバーOSを調べる

S.Okazaki php-users@php.gr.jp
Fri, 06 Sep 2002 11:43:15 +0900


こんにちは、岡崎です。
まず、これがここに投げて良い質問かどうか迷いましたが、
一応PHPで実現したいので・・・

$fp=fsockopen($ip,80,$errno,$errstr,30);
fwrite($fp,"GET / HTTP/1.0\r\nHost: www.hoge.com\r\n\r\n");
で、80番ポートを叩いて、$fpの終点まで

print fgets($fp,128);
ととすれば、

Server: Apache/1.3.26 (Unix) PHP/4.2.2 mod_ssl/2.8.10 OpenSSL/0.9.6g
のように、そのホストのだいたいの情報を得ることが出来ます。
実URIをあげていいのかどうか分からないので、取りあえず伏せておきますが、
この手のサイトでは相手サーバーOSまで特定できるようです。
しかし、上記方法ではそこまでは分かりません。
どうすれば、相手サーバーがSolaris なのかLinuxなのか等、
分かるのでしょうか?

時々Apache/1.3.23 (Unix) (Vine/Linux) の様に特定できるサーバーも
ありますが、これはそのディストリビューションのプリインストールされた
Apacheを動かしているときだと推測しています。
あっているでしょうか?

よろしくお願い致します。

/_/_/_/_/_/_/_/_/_/_/_/_/_/
Japan Human Base 
Sotaro Okazaki
Email : okazaki@jp-hb.com
/_/_/_/_/_/_/_/_/_/_/_/_/_/