获取用户公网IP的策略:

获取用户公网IP的策略:

使用remote_addr,如果拿到的是公网IP,停止获取。
使用X-Real-IP字段,如果拿到的是公网IP,说明业务server和用户之间只有一层代理,拿到的就是用户的真实IP。否则,如果拿到的是内网IP,说明中间还有多层,使用第三步。
获取X-Forwarded-For请求头字段,该字段以英文逗号空格隔开,包含多个IP。拆开之后,从前向后遍历,第一个公网IP即是用户的公网IP。从后往前遍历,第一个公网IP应是之前的X-Real-IP。
策略二:

应用端与服务端直接相连时,此时可直接获取用户真实ip,直接使用remote_addr.
访问经过代理服务,最近的一个IP是内网IP,或者header中有X-Forwarded-For-PORT字段时,从后向前扫描,取第一个非内网IP。


©版权声明:本文为【翰林小院】(huhanlin.com)原创文章,转载时请注明出处!

发表评论

电子邮件地址不会被公开。