http://www.blogasin.com

                                                                  【姚记彩票网址】php怎么识别真实ip-PHP问题

                                                                  PHP 里用来获取客户端 IP 的变量有这些:

                                                                  $_SERVER['HTTP_CLIENT_IP'] 这个头是有的,但是很少,不一定服务器都实现了。客户端可[以伪造。(推荐学习:PHP编程从入门到精通)

                                                                  $_SERVER['HTTP_X_FORWARDED_FOR'] 是有标准定义,用来识别经过 HTTP 代理后的客户端 IP 地址,格式:cli(entip,proxy1,proxy2。详细解释见 http://zh.wikipedia.org/wiki/X-Forwarded-F...。 客户端可以伪造。

                                                                  $_SERVER['REMOTE_ADDR'] 是可靠的, 它是最后一个跟你的服务器握手的 IP,可能是用户的代理服务器,)也可能是自己的反向代理。客户端不能伪造。

                                                                  客户端可以伪造的参数必须过滤和验证!很多人以为 $_SERVER 变量里的东西都是可信的,其实并不不然,$_SERVER['HTTP_CLIENT_IP'] 和 $_SERVER['HTTP_X_FORWARDED_FOR'] 都来自客户端请求的 header 里面。

                                                                  如果要严格获取用户真实 ip

                                                                  在反爬虫,防刷票的时候,客户端可以伪造的东西,我们一律不信]任,此为严格获取。

                                                                  没有套 CDN,用户直连我们的 PHP 服务器

                                                                  这种情况下用 tcp 层握手的 ip,$_SERVER['REMOTE_ADDR']

                                                                  自建集群用 nginx 实现负载均衡的时候

                                                                  这种情况下,PHP 应用服务器不能对外暴露,我们在 nginx 中实现获取真实 IP 再换发给 PHP 服务器。

                                                                  location /{   proxy_set_header client-real-ip $remote_addr;}

                                                                  client-real-ip 可以随意自己命名,我们将 tcp 层中跟 nginx 握手的 ip 转发给 PHP。

                                                                  使用 CDN,从 PHP 服务器取源的时候

                                                                  CDN 会,转发客户端的握手 ip 过来,各家策略有差异,具体去查 CDN 的文档。

                                                                  当然我们也可以把需要严格核查的业务绑一个二级域名,单独走我们自己的 nginx 服务器,避开 CDN。

                                                                  以上就是php怎么识别真实ip的详细内容,更多请关注php中文网其它相关文章!

                                                                1. 微信
                                                                2. 分享php中文网最新课程二维码相关标签:php
                                                                3. 本文原创发布php中文网
                                                                4. 郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

                                                                  上一篇:中国移动:5G目标明年六月规模商用,基于SA架构 - 中国移动,5G
                                                                  下一篇:没有了