IntroductionThis article is about a tool which you can use to get information like encoding, cookie details, web server name, server language, their version numbers, etc. Are they accurate?We cannot guarantee as it is possible for the server guys to fake/disable parameters if they wish. About WebClientWebClient belongs to System.Net.WebClient. You can find the MSDN page here - http://msdn.microsoft.com/en-us/library/system.net.webclient(VS.80).aspx WebClient provides common methods for sending data to and receiving data from a resoruce identified by a URI.This feature is available from .NET Framework version 2.0. I have made use of this feature for building this handy tool. How to use codeThis is the heart code of this tool which gets data from the server and displays the parameters to a textbox. WebClient wc = new WebClient();
// This line adds a user agent string to header of Web Client.// user agent is optional but some websites/servers use this string// to veryfy whether you are a bot or browser. We use this to act our tool // like a browser.// More info about user agent here - http://en.wikipedia.org/wiki/User_agentwc.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
// Below line reads informaion from the server of specified website.// OpenRead() method returns the contents of the file, but since we do not need// it for our tool, I am not reading it to a variable.wc.OpenRead(site);
// wc.ResponseHeaders contents all the header responses from server.// I am adding those information to a StringBuilder variable with some formatting.// wc.ResponseHeaders.Count returns number of keys/values available. // Count varries from website to webstiefor (int i = 0; i < wc.ResponseHeaders.Count; i++)
{
sb.Append((i + 1).ToString() + ". [" + wc.ResponseHeaders.AllKeys[i] + "] => "
+ wc.ResponseHeaders[i] + Environment.NewLine + Environment.NewLine);
}
// Fiinally, the formatted string is passed to the multi-line textboxtextBox1.Text = sb.ToString();
WebClient.ResponseHeaders is the property which brings our necessary parameters from the server. Who can benifit from this tool?Well, technology enthusiasts, I would say. If somebody is interested to know which website runs on which server/language, then this tool is for them.
Some of my observations with this tool here:. - google.com - gws (Google Web Server)
- codegain.com - IIS6, ASP.NET 3.5
- microsoft.com - IIS 7.5/ASP.NET 4.0
- msdn - IIS 7.5/ASP.NET 2.0
- php.net - Apache 1.3/PHP 5.2
- apache.org - Apache 2.3
- python.org - Apache 2.3/Python 2.5
- gmail - GSE (Google Search Extension)
- oracle.com - Oracle Application Server
- java.com - Sun Java System Web Server
- wikipidea.org - Apache
Sample Project Source Download source files -25 kb Download demo -4 kb That's all enjoy happy coding. |