国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

僅用50行Python代碼實現一個簡單的代理服務器

來源:懂視網 責編:小采 時間:2020-11-27 14:39:52
文檔

僅用50行Python代碼實現一個簡單的代理服務器

僅用50行Python代碼實現一個簡單的代理服務器:之前遇到一個場景是這樣的: 我在自己的電腦上需要用mongodb圖形客戶端,但是mongodb的服務器地址沒有對外網開放,只能通過先登錄主機A,然后再從A連接mongodb服務器B。 本來想通過ssh端口轉發的,但是我沒有從機器A連接ssh到B的權限。于是就自己用pyth
推薦度:
導讀僅用50行Python代碼實現一個簡單的代理服務器:之前遇到一個場景是這樣的: 我在自己的電腦上需要用mongodb圖形客戶端,但是mongodb的服務器地址沒有對外網開放,只能通過先登錄主機A,然后再從A連接mongodb服務器B。 本來想通過ssh端口轉發的,但是我沒有從機器A連接ssh到B的權限。于是就自己用pyth

之前遇到一個場景是這樣的:

我在自己的電腦上需要用mongodb圖形客戶端,但是mongodb的服務器地址沒有對外網開放,只能通過先登錄主機A,然后再從A連接mongodb服務器B。

本來想通過ssh端口轉發的,但是我沒有從機器A連接ssh到B的權限。于是就自己用python寫一個。

原理很簡單。

1.開一個socket server監聽連接請求

2.每接受一個客戶端的連接請求,就往要轉發的地址建一條連接請求。即client->proxy->forward。proxy既是socket服務端(監聽client),也是socket客戶端(往forward請求)。

3.把client->proxy和proxy->forward這2條socket用字典給綁定起來。

4.通過這個映射的字典把send/recv到的數據原封不動的傳遞

下面上代碼。

#coding=utf-8 
import socket 
import select 
import sys 
 
to_addr = ('xxx.xxx.xx.xxx', 10000)#轉發的地址 
 
class Proxy: 
 def __init__(self, addr): 
 self.proxy = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
 self.proxy.bind(addr) 
 self.proxy.listen(10) 
 self.inputs = [self.proxy] 
 self.route = {} 
 
 def serve_forever(self): 
 print 'proxy listen...' 
 while 1: 
 readable, _, _ = select.select(self.inputs, [], []) 
 for self.sock in readable: 
 if self.sock == self.proxy: 
 self.on_join() 
 else: 
 data = self.sock.recv(8096) 
 if not data: 
 self.on_quit() 
 else: 
 self.route[self.sock].send(data) 
 
 def on_join(self): 
 client, addr = self.proxy.accept() 
 print addr,'connect' 
 forward = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
 forward.connect(to_addr) 
 self.inputs += [client, forward] 
 self.route[client] = forward 
 self.route[forward] = client 
 
 def on_quit(self): 
 for s in self.sock, self.route[self.sock]: 
 self.inputs.remove(s) 
 del self.route[s] 
 s.close() 
 
if __name__ == '__main__': 
 try: 
 Proxy(('',12345)).serve_forever()#代理服務器監聽的地址 
 except KeyboardInterrupt: 
 sys.exit(1)

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

僅用50行Python代碼實現一個簡單的代理服務器

僅用50行Python代碼實現一個簡單的代理服務器:之前遇到一個場景是這樣的: 我在自己的電腦上需要用mongodb圖形客戶端,但是mongodb的服務器地址沒有對外網開放,只能通過先登錄主機A,然后再從A連接mongodb服務器B。 本來想通過ssh端口轉發的,但是我沒有從機器A連接ssh到B的權限。于是就自己用pyth
推薦度:
標簽: 代理 服務器 python
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产精品第1页在线观看 | 91在线 | 欧美| 伊人久久中文字幕 | 国产精品久久久久毛片 | 欧美精品一二区 | 亚洲精品高清视频 | 性久久久久久久 | 亚洲黄色一区 | 亚洲 欧美 日韩 小说 另类 | 国产精品伦理久久久久 | 国产高清视频在线观看 | 制服丝袜一区 | 日本福利片国产午夜久久 | 一区二区在线观看高清 | 日韩欧美色视频 | 日韩欧美国产中文字幕 | 欧美亚洲综合激情在线 | 国产精品成人va | 精品国产免费一区二区三区五区 | 国产精品成| 伊人婷婷色 | 欧美中出| 国内精品久久久久影院不卡 | 亚洲国产成人久久三区 | 免费观看的黄色网址 | 国产精品免费视频能看 | 久久无码av三级 | 91精品国产9l久久久久 | 久久精品国产99久久99久久久 | 国产成人一区二区三区在线播放 | 亚洲国产成人精品一区二区三区 | 福利一区二区 | 精品久久久久久久 | 国产一区二区日韩欧美在线 | 一级一级一级毛片免费毛片 | 国产一级精品视频 | 欧美国产精品 | 天天曰夜夜操 | 欧美日韩精品一区二区三区视频播放 | 亚洲精品国产成人99久久 | 久久久国产这里有的是精品 |