由淺入深寫代理(5)-socks5-代理
01-27
既然 socks5 是協議,所以客戶端也必須有 socks5 的實現才能和服務端連接。這裡面我就用現成的開源庫 [PySocks](Anorov/PySocks) 來演示下。
pySocks 有兩種方式來實現,一種是直接的 s = socks.socksocket() 創建一個新的 socket 對象,還有一種是 Monkeypatching,算是 python 的黑魔法。
我們用第一種方法試下
首先把代理伺服器開起來
python3 socks5_server.py
然後運行如下代碼
import socksns = socks.socksocket() # Same API as socket.socket in the standard libns.set_proxy(socks.SOCKS5, "localhost", 8888)nns.connect(("Sina Visitor System", 80))ns.sendall("GET / HTTP/1.1 /r/n/r/n")nprint s.recv(4096)n
返回值如下
由於沒有設置 http 正確的 header,所以 weibo 伺服器返回了 400
當然你可以直接用 chrome 的 代理插件設置如下
可以看到所有的請求都經過 socks5 伺服器了
推薦閱讀:
※socket內存佔用疑問?
※圖解SDN:軟體定義網路導論篇
※酷站推薦 - yunshan.net - 雲杉網路 | Pure Play SDN | 軟體定義網路
※為什麼澳洲的網路又貴又慢?還沒有國內方便
※外國大學的網路是否也會卡?