微信公眾平台開發實例-校園網流量自動查詢


聽說微信公眾平台很火,剛好最近破解了學校流量查詢網站驗證碼的漏洞。就做了一個查詢的公共賬號。

參考了另外一位兄弟的文章http://blog.alphatr.com/weixin-api.html

以及一個開源項目https://github.com/zscorpio/weChat ,通過抓包Hack實現平台信息主動推送的(微信官方暫時沒有提供主動推送的API)

遇到的比較棘手的問題是: 學校的流量查詢網站是教育網,微信的服務器根本無法訪問!

想到了使用代理的方案,具體如下:

環境:百度BAE代碼,公網主機A,校園網主機B (A不能部署代碼)

B SSH 到A上,ssh -NCfg -R 8080:127.0.0.1:8080 root@A

這樣在A上所有到8080端口的數據包都會轉發到B主機上。

然后就有三種方案:

      A .  在B主機上做一個Squid代理。 這樣就形成了一個公網到教育網的HTTP代理服務器。

      B .  如果在B主機上 ssh -NCfg -D 1080 root@B ,就是一個Sock5代理

      C.   在B上直接部署代碼。

經過實踐,由於BAE的奇葩環境,php_curl不能用Sock5代理,而且同一個腳本中不能多次請求。

最終采用了C方案.(也許用php_curl經過HTTP代理也可以,不過真心不想再試了)

整體思路就是:

 1  用戶發送消息到微信公共賬號

 2  微信服務器將消息體發送到指定的BAE的URL中

 3  BAE中的代碼,通過代理,將消息體再發給主機B。

 4  主機B模擬登陸校內網站,得到數據后,一次返回。

 

具體的技術細節就是PHP的 curl  socket_create , 再就是對HTTP數據包的構造。

碰到的奇葩問題是:

socket_create里不可以有connection: keep-alive

百度BAE環境中,一個PHP腳本,在執行過程中,只能生成一次socket_create

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM