asp.net獲取伺服器資訊

ndblog發表於2013-04-07

1.獲取IP地址

服務端獲取
//方法一
HttpContext.Current.Request.UserHostAddress; 

//方法二
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

//方法三
string strHostName = System.Net.Dns.GetHostName();
string clientIPAddress = System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString();

//方法四(無視代理)
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

//方法五
if(Context.Request.ServerVariables["HTTP_VIA"]!=null) // using proxy
{ 
     ip=Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();  // Return real client IP.
}
else// not using proxy or can`t get the Client IP
{ 
     ip=Context.Request.ServerVariables["REMOTE_ADDR"].ToString(); //While it can`t get the Client IP, it will return proxy IP.
}

客戶端獲取
//方法六
var ip = `<!--#echo var="REMOTE_ADDR"-->`;
alert("Your IP address is "+ip);

//方法七(無視代理)
function GetLocalIPAddress() 
{ 
    var obj = null; 
    var rslt = ""; 
    try 
    { 
        obj = new ActiveXObject("rcbdyctl.Setting"); 
        rslt = obj.GetIPAddress; 
        obj = null; 
    } 
    catch(e) 
    { 
        // 
    } 
     
    return rslt; 
} 

 

2.獲取當前頁面地址資訊

設當前頁完整地址是:http://www.jb51.net/aaa/bbb.aspx?id=5&name=kelli
“http://”是協議名
“www.jb51.net”是域名
“aaa”是站點名
“bbb.aspx”是頁面名(檔名)
“id=5&name=kelli”是引數
【1】獲取 完整url (協議名+域名+站點名+檔名+引數)
程式碼如下:

string url=Request.Url.ToString();
url= http://www.jb51.net/aaa/bbb.aspx?id=5&name=kelli

【2】獲取 站點名+頁面名+引數:
程式碼如下:

string url=Request.RawUrl;
(或 string url=Request.Url.PathAndQuery;)
url= /aaa/bbb.aspx?id=5&name=kelli

【3】獲取 站點名+頁面名:
 程式碼如下:

string url=HttpContext.Current.Request.Url.AbsolutePath;
(或 string url= HttpContext.Current.Request.Path;)
url= aaa/bbb.aspx

【4】獲取 域名:
程式碼如下:

string url=HttpContext.Current.Request.Url.Host;
url= www.jb51.net

【5】獲取 引數:
程式碼如下:

string url= HttpContext.Current.Request.Url.Query;
url= ?id=5&name=kelli

 程式碼如下:

Request.RawUrl:獲取客戶端請求的URL資訊(不包括主機和埠)——>/Default2.aspx
Request.ApplicationPath:獲取伺服器上ASP.NET應用程式的虛擬路徑。——>/
Request.CurrentExecutionFilePath:獲取當前請求的虛擬路徑。——>/Default2.aspx
Request.Path:獲取當前請求的虛擬路徑。——>/Default2.aspx
Request.PathInfo:取具有URL副檔名的資源的附加路徑資訊——>
Request.PhysicalPath:獲取與請求的URL相對應的物理檔案系統路徑。——>E: empDefault2.aspx
Request.Url.LocalPath:——>/Default2.aspx
Request.Url.AbsoluteUri:——>http://localhost:8080/Default2.aspx
Request.Url.AbsolutePath:—————————->/Default2.aspx

 

3.獲取伺服器資訊

        protected void Page_Load(object sender, EventArgs e)
        {
            //獲取伺服器名
            this.serverName.Text = "http://" + Request.Url.Host;
            //獲取伺服器IP
            this.serverIP.Text = Request.ServerVariables.Get("Local_Addr").ToString();
            //獲取伺服器作業系統版本
            this.serverSystem.Text = GetSystem();
            //獲取管理系統當前目錄
            this.serverPath.Text = Request.PhysicalApplicationPath;
            //獲取伺服器IIS版本
            this.serverIIS.Text = Request.ServerVariables["SERVER_SOFTWARE"].ToString();
            //獲取伺服器當前時間
            this.serverDate.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            //檢測IE版本
            RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWAREMicrosoftInternet ExplorerVersion Vector");
            this.serverIE.Text = key.GetValue("IE", "未檢測到").ToString();
            //檢測訪問埠
            this.serverPort.Text = Request.ServerVariables.Get("Server_Port").ToString();
        }

        /// <summary>
        /// 獲取作業系統版本
        /// </summary>
        /// <returns></returns>
        private string GetSystem()
        {
            string system = Request.ServerVariables.Get("HTTP_USER_AGENT").ToString();
            string tmpSys = string.Empty;
            if (system.IndexOf("NT 4.0")>0)
            {
                tmpSys = "Windows NT 4.0";
            }
            else if (system.IndexOf("NT 5.0")>0)
            {
                tmpSys = "Windows NT 5.0";
            }
            else if (system.IndexOf("NT 6.1")>0)
            {
                tmpSys = "Windows NT 6.1";
            }
            else
            {
                tmpSys = "未檢測到作業系統資訊!";
            }
            return tmpSys;
        }
3.獲取伺服器資訊       

                 Label1.Text = "伺服器名稱:"+Server.MachineName;//伺服器名稱  
                 Label2.Text = "伺服器IP地址:" + Request.ServerVariables["LOCAL_ADDR"];//伺服器IP地址  
                 Label3.Text = "伺服器域名:" + Request.ServerVariables["SERVER_NAME"];//伺服器域名  
                 Label4.Text = ".NET解釋引擎版本:" + ".NET CLR" + Environment.Version.Major + "." + Environment.Version.Minor + "." + Environment.Version.Build + "." + Environment.Version.Revision;//.NET解釋引擎版本  
                 Label5.Text = "伺服器作業系統版本:" + Environment.OSVersion.ToString();//伺服器作業系統版本  
                 Label6.Text = "伺服器IIS版本:" + Request.ServerVariables["SERVER_SOFTWARE"];//伺服器IIS版本  
                 Label7.Text = "HTTP訪問埠:" + Request.ServerVariables["SERVER_PORT"];//HTTP訪問埠  
                 Label8.Text = "虛擬目錄的絕對路徑:" + Request.ServerVariables["APPL_RHYSICAL_PATH"];//虛擬目錄的絕對路徑  
                 Label9.Text = "執行檔案的絕對路徑:" + Request.ServerVariables["PATH_TRANSLATED"];//執行檔案的絕對路徑  
                 Label10.Text = "虛擬目錄Session總數:" + Session.Contents.Count.ToString();//虛擬目錄Session總數  
                 Label11.Text = "虛擬目錄Application總數:" + Application.Contents.Count.ToString();//虛擬目錄Application總數  
                 Label12.Text = "域名主機:" + Request.ServerVariables["HTTP_HOST"];//域名主機  
                 Label13.Text = "伺服器區域語言:" + Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"];//伺服器區域語言  
                 Label14.Text = "使用者資訊:" + Request.ServerVariables["HTTP_USER_AGENT"];  
                 Label14.Text="CPU個數:"+Environment.GetEnvironmentVariable("NUMBER_OF_PROCESSORS");//CPU個數  
                 Label15.Text = "CPU型別:" + Environment.GetEnvironmentVariable("PROCESSOR_IDENTIFIER");//CPU型別  
                 Label16.Text = "程式開始時間:" + GetPrStart();//程式開始時間  
                 Label17.Text = "AspNet 記憶體佔用:" + GetAspNetN();//AspNet 記憶體佔用  
                 Label18.Text = "AspNet CPU時間:" + GetAspNetCpu();//AspNet CPU時間  
                 Label19.Text = "FSO 文字檔案讀寫:" + Check("Scripting.FileSystemObject");//FSO 文字檔案讀寫  
                 Label20.Text = "應用程式佔用記憶體" + GetServerAppN();//應用程式佔用記憶體 

 

作者:Tyler Ning

出處:http://www.cnblogs.com/tylerdonet/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,如有問題,可以通過以下郵箱地址williamningdong@gmail.com
 聯絡我,非常感謝。


相關文章