国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現TCP/IP協議下的端口轉發及重定向示例

2019-11-25 16:43:46
字體:
來源:轉載
供稿:網友

首先,我們用webpy寫一個簡單的網站,監聽8080端口,返回“Hello, EverET.org”的頁面。

然后我們使用我們的forwarding.py,在80端口和8080端口中間建立兩條通信管道用于雙向通信。

此時,我們通過80端口訪問我們的服務器。

瀏覽器得到:

2016614172131520.png (426×190)

然后,我們在forwarding.py的輸出結果中可以看到瀏覽器和webpy之間的通信內容。

2016614172157520.png (675×588)

代碼:

#!/usr/bin/env pythonimport sys, socket, time, threadingloglock = threading.Lock()def log(msg):  loglock.acquire()  try:    print '[%s]: /n%s/n' % (time.ctime(), msg.strip())    sys.stdout.flush()  finally:    loglock.release()class PipeThread(threading.Thread):  def __init__(self, source, target):    threading.Thread.__init__(self)    self.source = source    self.target = target  def run(self):    while True:      try:        data = self.source.recv(1024)        log(data)        if not data: break        self.target.send(data)      except:        break    log('PipeThread done')class Forwarding(threading.Thread):  def __init__(self, port, targethost, targetport):    threading.Thread.__init__(self)    self.targethost = targethost    self.targetport = targetport    self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    self.sock.bind(('0.0.0.0', port))    self.sock.listen(10)  def run(self):    while True:      client_fd, client_addr = self.sock.accept()      target_fd = socket.socket(socket.AF_INET, socket.SOCK_STREAM)      target_fd.connect((self.targethost, self.targetport))      log('new connect')      # two direct pipe      PipeThread(target_fd, client_fd).start()      PipeThread(client_fd, target_fd).start()if __name__ == '__main__':  print 'Starting'  import sys  try:    port = int(sys.argv[1])    targethost = sys.argv[2]    try: targetport = int(sys.argv[3])    except IndexError: targetport = port  except (ValueError, IndexError):    print 'Usage: %s port targethost [targetport]' % sys.argv[0]    sys.exit(1)  #sys.stdout = open('forwaring.log', 'w')  Forwarding(port, targethost, targetport).start()

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 叶城县| 元江| 廉江市| 朔州市| 桂林市| 呼玛县| 大港区| 三明市| 弥勒县| 保亭| 巴林右旗| 城固县| 临颍县| 二连浩特市| 嫩江县| 柯坪县| 蒙城县| 乃东县| 绥滨县| 南江县| 阳原县| 修水县| 南部县| 县级市| 奉化市| 焉耆| 青神县| 英吉沙县| 阳西县| 潮安县| 长岭县| 清水县| 洞口县| 云和县| 五大连池市| 阳曲县| 普定县| 顺昌县| 灌南县| 达日县| 华亭县|