使用知道创宇云安全后如何获取访客真实IP

假设访问过程如下:

网民IP — 代理IP1—代理IP2—云安全节点—网站服务器。

其中直接和云安全节点相连的IP不可伪造,非连接的IP可伪造。如果网民访问网站没有使用VPN代理,则除过REMOTE_ADDR外得到的IP地址是一样的,均是网民电脑IP。

在网站服务器上看到的IP值如下(PHP写法,如$_SERVER[‘REMOTE_ADDR’]):

  • REMOTE_ADDR:节点IP
  • HTTP_X_FORWARDED_FOR:网民IP,代理IP1,代理IP2
  • HTTP_X_REAL_FORWARDED_FOR / HTTP_X_CONNECTING_IP:代理IP2,一般推荐使用这个,即直接和云安全节点相连接的IP,因为没有直接和云安全节点连接的IP是可伪造的。

 

Nginx配置示例:

log_format  main  ‘$remote_addr $http_x_connecting_ip – $remote_user [$time_local] “$request” ‘

                      ‘$status $body_bytes_sent “$http_referer” ‘

                      ‘”$http_user_agent” $request_time “$upstream_http_content_type”‘;

Nginx如上配置后的效果:

1.1.1.1 2.2.2.2 – – [26/Apr/2017:03:49:15 +0000] “GET / HTTP/1.1” 200 13459 “-” “Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)” 0.516 “text/html; charset=UTF-8”

 

相关帮助:

PHP、ASP、ASP.NET、JSP网站使用云安全后,修改代码获取访客真实IP

修改Nginx配置将知道创宇云安全传送的访客真实IP地址标识重命名