2015-02-10 49 views
-1

我試圖抓住客戶是誰在使用下面的代碼請求我的網站IP地址:掠在aspx頁面的IP地址的PHP網站

protected string GetIPAddress() 
     { 
      System.Web.HttpContext context = System.Web.HttpContext.Current; 
      string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 

      if (!string.IsNullOrEmpty(ipAddress)) 
      { 
       string[] addresses = ipAddress.Split(','); 
       if (addresses.Length != 0) 
       { 
        return addresses[0]; 
       } 
      } 

      return context.Request.ServerVariables["REMOTE_ADDR"]; 
     } 

我在C#中的Web服務代碼有此駐留上我的客戶端Web服務器代碼駐留在同一臺服務器(在這種情況下,它是PHP)。

因此,客戶端請求我的php網站駐留在服務器1上.php wesbite向c#webservice發出請求,請求駐留在服務器1上的數據。在我的情況下捕獲的ip地址始終位於我的php代碼所在的位置。這是因爲在我的情況下,它的服務器1上的php代碼發出請求。

我應該抓住我的PHP代碼中的IP地址,並將其傳遞給我的C#Web服務登錄到數據庫。 任何建議將不勝感激 謝謝, 阿努拉格

+0

由於您的PHP代碼將始終與您的服務聯繫,因此您應該按照您在最後一行中所述的方式進行操作,並使用PHP代碼抓取您的客戶端IP並將其傳遞給服務。 – Mehraban 2015-02-10 05:11:54

+0

好,非常感謝您的建議 – user3290807 2015-02-10 05:18:03

回答

0

PHP是執行服務器側,從而當它使與c#web服務的請求的C#web服務將始終具有一個Request物體反射的PHP代碼正在調用它來自同一臺服務器。

是的,在這種情況下,您應該閱讀PHP代碼中的IP地址。