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"]);