cdn加速后获取真实IP的方法
请把以下程序相应的部分加到贵司的源程序中,以实现获取最终客户IP代码的功能。
如果您需要其它语言的例子,我们也可以提供。需要注意的是这些代码是在您切换CDN后生效,如未使用CDN服务,这些代码是无法获得用户IP的。
CDN回源请求时会在请求中加一个头,该头中的ip是最终客户的ip:
Cdn-Src-Ip:192.168.0.10
下面是分别用java和C#,Asp写的取头的片段。
Java:
String srcIp = request.getHeader(“Cdn-Src-Ip”); if(srcIp == null){ srcIp = request.getRemoteAddr();
}
[注]request是HttpServletRequest类型的参数,无论是直接写serverlet还是用struts都会传入该参数。
Asp(用C#):
String srcIp = Request.Headers[“Cdn-Src-Ip”];
if(srcIp == null){
srcIp = Request.UserHostAddress;
}
Asp:
<% Request.ServerVariables(“HTTP_Cdn-Src-Ip”) %>
PHP:
$user_IP = ($_SERVER[“HTTP_CDN_SRC_IP”]);