從刷票瞭解如何得到客戶端IP

個人我的博客,源地址:http://www.woniubi.cn/get_client_ip/php

前兩個星期幫一個朋友的親戚的孩子刷票,誰讓我們是程序員呢。這當中也遇到太重裝系統,除灰塵,淘寶購物,盜QQ,下電影,某一個軟件爲何不能使用等等,要是說不會,他們就說你電腦技術不是挺牛逼的嗎,這點問題都解決不了。程序員

刷票,分爲多種限制,註冊用戶,驗證碼,以及IP限制。這個刷票網站,而不,是這個投票網站,限制了IP。若是要突破限制,咱們須要瞭解如何得到用戶的IP。web

1:getenv('HTTP_X_FORWARDED_FOR')
2:getenv('HTTP_CLIENT_IP')
3:getenv('REMOTE_ADDR')

HTTP_X_FORWARDED_FOR

這個是從http header頭部得到,他的格式是A ip, B ip, C ip。出現這種狀況的緣由有兩種負載均衡

  1. 一個網站因爲流量過大,使用負載均衡,因此在應用程序前面放一個負載均衡器,用戶沒法直接訪問到。
  2. 用戶使用代理去訪問。

用戶先是使用A IP,每增長一層代理,這個頭就會在後面多增長一個IP,以逗號分割,最後到達真正的web容器。只要是頭部得到信息,都是能夠被僞造的。因此這種狀況使用A IP 有可能不是用戶的真實IP。因此咱們這種狀況,咱們只能把鏈接負載均衡的IP當作用戶的真實IP,至少這個數據是正確的。可是這個IP多是用戶的代理IP,不是用戶的真實IP。不過這種狀況至少比用戶的假ip好一些。網站

HTTP_CLIENT_IP

這個也是從header頭部得到,原本是打算記錄用戶真實IP,可是不多使用到。
spa

REMOTE_ADDR

這個就是得到鏈接的IP,只有小網站才這麼使用,直接把數據暴漏出去,站點就是一個單點,沒有任何的負載均衡。若是上層使用了pxory,這個數據就是proxy的IP。 代理

而我做惡就是直接僞造x-forwarder-for數據,而後欺騙他們,不過沒過幾天,這個漏洞被發現了,而後我就換成使用代理的方式的直接刷的。 blog

相關文章
相關標籤/搜索