<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="刷票：通过HTTP_X_FORWARDED_FOR、HTTP_CLIENT_IP、REMOTE_ADDR来看获得客户端IP的方法" id="card1">
<p> 游客</p><p>
标题:刷票：通过HTTP_X_FORWARDED_FOR、HTTP_CLIENT_IP、REMOTE_ADDR来看获得客户端IP的方法<br/>
正文:<br/>
刷票，分为多种限制，注册用户，验证码，以及IP限制。这个刷票网站，而不，是这个投票网站，限制了IP。如果要突破限制，我们需要了解如何获得用户的IP。getenv('HTTP_X_FORWARDED_FOR')getenv('HTTP_CLIENT_IP')getenv('REMOTE_ADDR') HTTP_X_FORWARDED_FOR这个是从http header头部获得，他的格式是A ip, B ip, C ip。出现这种情况的原因有两种一个网站由于流量过大，使用负载均衡，所以在应用程序前面放一个负载均衡器，用户无法直接访问到。用户使用代理去访问。用户先是使用A IP，每增加一层代理，这个头就会在后面多增加一个IP，以逗号分割，最后到达真正的web容器。 只要是头部获得信息，都是可以被伪造的。所以这种情况使用A IP 有可能不是用户的真实IP。所以我们这种情况，我们只能把连接负载均衡的IP当做用户的真实IP，至少这个数据是正确的。但是这个IP可能是用户的代理IP，不是用户的真实IP。不过这种情况至少比用户的假ip好一些。HTTP_CLIENT_IP这个也是从header头部获得，本来是打算记录用户真实IP，但是很少使用到。REMOTE_ADDR这个就是获得连接的IP，只有小网站才这么使用，直接把数据暴漏出去，站点就是一个单点，没有任何的负载均衡。如果上层使用了pxory，这个数据就是proxy的IP。而我作恶就是直接伪造x-forwarder-for数据，然后欺骗他们，不过没过几天，这个漏洞被发现了，然后我就换成使用代理的方式的直接刷的。<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2223&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2223&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2223&amp;Page=1">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=2223">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=2223">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>