2011-04-12 10 views
0

私は特定のウェブサイトのIP番号を特定できるFirefoxとChrome用のいくつかのプラグインをテストしました。しかし、その中には、ウェブサイトが実行するサーバー側の技術を示すものもあります。プラグインはウェブサイトが実行されているサーバのタイプをどのように識別しますか?

これはどうしますか?私はクライアントユーザーエージェントについて知っていますが、サーバーが "サーバーホストエージェント"という文字列を送信するHTTPプロトコルに類似したものがありますか?

もしそうなら、この外観をどのように取得するのか。私はWebClientでその何かを推測しますか?

誰でも?

+0

可能重複(http://stackoverflow.com/questions/1097472/how-ウェブサーバ型の検出) – Shoban

+0

ohh!投稿する前に試してみましたが、私はそれを見つけませんでした。申し訳ありません、リンクに感謝します。あまりにもそれをチェックします。 – BerggreenDK

答えて

1

HttpWebRequestを使用し、MethodプロパティをHEADに設定すると、非常に軽量なHTTP HEAD要求を行うことができます。 HTTPヘッダーが返されます(正しくない場合もあります)。 HTTPヘッダーは、サーバーが公開するヘッダーの標準がないため、サーバーごとに異なる場合があります。

コード:

HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://www.contoso.com/"); 
myReq.Method = "HEAD"; 
WebResponse myRes = myReq.GetResponse(); 
for(int i=0; i < myHttpWebResponse.Headers.Count; ++i) { 
    Console.WriteLine(
     "\nHeader Name:{0}, Value :{1}", 
     myHttpWebResponse.Headers.Keys[i], myHttpWebResponse.Headers[i] 
    ); 
} 

EDIT:[Webサーバの種類を検出する方法]の

var request = (HttpWebRequest)WebRequest.Create("http://www.http500.com"); 
try 
{ 
    var response = request.GetResponse(); 
} 
catch (WebException wex) 
{ 
    // Safe cast to HttpWebResponse using 'as', will return null if unsuccessful 
    var httpWebResponse = wex.Response as HttpWebResponse; 
    if(httpWebResponse != null) 
    { 
     var httpStatusCode = httpWebResponse.StatusCode; 
     // HttpStatusCode is an enum, cast it to int for its actual value 
     var httpStatusCodeInt = (int)httpWebResponse.StatusCode;      
    } 
} 
+0

おかげさまで、私は待っている間に何か似たものを見つけましたが、GETを使用してGETレスポンスでHTMLページ全体を作成しました。これは大規模なWebページでは非常に過剰です。再度、感謝します! – BerggreenDK

+0

私はHTTPSアドレスを使ってみましたが、クラッシュしたようですか? – BerggreenDK

+0

クラッシュ?あなたは例外の詳細を取得しますか? Fiddlerを使用して、ブラウザで行ったリクエストの詳細や得られた回答を調べます。それによって、あなたは何が起こっているのかを判断することができます。 –