接入 CDN 后,為了方便獲取客戶端真實 IP,部分CDN服務商會在請求的頭中添加 Cdn-Real-Ip 字段。 例:Cdn-Real-Ip: 58.214.233.214 需要注意的是這些代碼是在您切換 CDN 后生效,如未使用 CDN 服務,這些代碼是無法獲得用戶 IP 的。 下面是讀取 Cdn-Real-ip 代碼片段:
php:
<?php $user_IP = ($_SERVER["HTTP_CDN_REAL_IP"]); echo $user_IP; ?>
Java:
String srcIp = request.getHeader("Cdn-Real-Ip"); if(srcIp == null){ srcIp = request.getRemoteAddr(); }
[注]request 是 HttpServletRequest 類型的參數,無論是直接寫 serverlet 還是用 struts 都會傳入該參數
Asp(用 C#):
String srcIp = Request.Headers["Cdn-Real-Ip"]; if(srcIp == null){ srcIp = Request.UserHostAddress; }
ASP:
<% Request.ServerVariables("HTTP_Cdn-Real-Ip") %>
轉載請注明出處 AE博客|墨淵 ? 開啟CDN后獲取用戶真實IP方法 PHP|ASP|JAVA常見代碼
發表評論