Following on your own lead for "System.Web.HttpContext.Current.Request.ServerVariables", the MSDN documentation for the ServerVariables property contains some sample code on how to retrieve all available named server variables:
int loop1, loop2;
NameValueCollection coll;
// Load ServerVariable collection into NameValueCollection object.
coll=Request.ServerVariables;
// Get names of all keys into a string array.
String[] arr1 = coll.AllKeys;
for (loop1 = 0; loop1 < arr1.Length; loop1++)
{
Response.Write("Key: " + arr1[loop1] + "<br>");
String[] arr2=coll.GetValues(arr1[loop1]);
for (loop2 = 0; loop2 < arr2.Length; loop2++) {
Response.Write("Value " + loop2 + ": " + Server.HtmlEncode(arr2[loop2]) + "<br>");
}
}
Furthermore, it also contains a link to all server variables supported by IIS
For example, the "REMOTE_HOST" variable will give you:
The name of the host that is making the request. If the server does not have this information, it will set REMOTE_ADDR and leave this empty.