首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 獲取客戶端資訊:IP、瀏覽器、作業系統

     編輯:關於ASP.NET

透過 `Request.ServerVariables` 與 `Request.Browser` 可獲取豐富的客戶端環境資訊。

1. 列舉所有 ServerVariables

NameValueCollection coll = Request.ServerVariables;
foreach (string key in coll.AllKeys)
{
    Response.Write($"Key: {key}<br/>");
    foreach (string val in coll.GetValues(key))
        Response.Write($"Value: {val}<br/>");
}

2. 取得真實 IP(穿透代理)

public string GetClientIp()
{
    // 代理伺服器會加上 X-Forwarded-For
    if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
        return Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    // 直接連線
    return Request.ServerVariables["REMOTE_ADDR"];
}

註:`HTTP_VIA` 非標準,不建議依賴判斷是否經代理。

3. 瀏覽器與作業系統

HttpBrowserCapabilities bc = Request.Browser;
string info = $"瀏覽器: {bc.Browser} {bc.Version}<br/>" +
              $"平台: {bc.Platform}<br/>" +
              $"是否行動裝置: {bc.IsMobileDevice}<br/>" +
              $"支援 JavaScript: {bc.EcmaScriptVersion}<br/>";
Response.Write(info);

常用 ServerVariables 速查

變數含義
REMOTE_ADDR客戶端 IP(或代理 IP)
HTTP_X_FORWARDED_FOR原始客戶端 IP 鏈(代理添加)
HTTP_USER_AGENT瀏覽器完整 User-Agent 字串
HTTP_REFERER來源頁面 URL
SERVER_NAME伺服器主機名
SERVER_PORT伺服器埠號
REQUEST_METHODGET/POST 等
QUERY_STRING查詢字串
PATH_INFO請求路徑

應用場景

  • 記錄訪問日誌、異常登入偵測、地理定位(配合 IP 資料庫)。
  • 瀏覽器相容性統計、行動裝置適配決策。
  • 防盜鏈(檢查 `HTTP_REFERER`)、CSRF 防護輔助。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved