• 销售:0755-83271919、83271881 服务:0755-83271606、83658105

帮助中心

HELP

采用CDN加速后,如何在程序里获取用户IP地址

现在很多网站用了CDN技术,但采用CDN技术后,原来用来获取访问源的IP地址的程序已不能正常使用,它拿到的并不是访问源的真实IP地址,而是CDN节点的IP地址,解决方法是对获取IP的代码作一点小改动。

在没有使用CDN之前,我们如果想在网站程序里拿到浏览者的IP,只需要读取 REMOTE_ADDR 这个服务器变量就行了,而采用CDN后,REMOTE_ADDR 这个变量的值并不是访问源的上网IP地址,而是CDN节点的IP地址,而用户的真实上网IP是放在 HTTP_X_FORWARDED_FOR 这个变量里的,既然这样,我们只需写个兼容性的函数来获取IP地址即可,代码示例如下:

1. asp 的示例代码

<%

Function GetClientIP()

 Dim ip

 ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")

 If(ip <> "") Then

  Dim arr

  arr = Split(ip,",")

  GetClientIP = arr(0)

 Else

  GetClientIP = Request.ServerVariables("REMOTE_ADDR")

 End if

End function

Response.Write("您的上网IP是:" + GetClientIP())

%>

2. asp.net 的示例代码

<%@Page Language="C#"%>

3. php 的示例代码

function GetClientIP(){

 $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];

 if($ip != ""){

  $arr = explode(",",$ip);

  return $arr[0];

 }else{

  return $_SERVER["REMOTE_ADDR"];

 }

}

echo "您的上网IP是:".GetClientIP();

?>

  • 投诉/Suggest:13823188098
  • 电话/Tel:0755-83271881
  • 邮箱/Mail:web@ni8.com
  • 地址/Add:深圳市福田区华强南路机械大厦6楼