仅用50行Python代码实现一个简单的代理服务器
来源:诚信在线    发布时间:2017-06-28 19:09:30

  sys.exit(一)

  forward.connect(to_addr)

  self.on_join()

  client, addr = self.proxy.accept()

  data = self.sock.recv(8096)

  3.把client->proxy战proxy->forward那二条socket用字典给绑定起来。

  forward = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

  print addr,'connect'

  self.proxy = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

  self.on_quit()

  Proxy(('',12345)).serve_forever()#代理服务器监听的地点

  import sys

  else:

  import select

  道理很容易。

  del self.route[s]

  if __name__ == '__main__':

  1.合一个socket server监听衔接要求

  def serve_forever(self):

  self.inputs.remove(s)

  else:

  self.inputs += [client, forward]

  to_addr = ('xxx.xxx.xx.xxx', 10000)#转发的地点

  self.proxy.listen(十)

  def on_join(self):

  4.经过这个映照的字典把send/recv到的数据一成不变的传送

  def __init__(self, addr):

  s.close()

  class Proxy:

  你能够感兴趣的文章:python完成经由过程代理服务器拜候长途url的要领Python基于scrapy收集数据时运用代理服务器的办法python完成简朴的TCP代理服务器Python写的Socks5和谈代理服务器Python完成简略的代理服务器

  if not data:

  self.inputs = [self.proxy]

  print 'proxy listen...'

  self.proxy.bind(addr)

  #coding=utf-八

  上面上代码。

  for self.sock in readable:

  self.route[self.sock].send(data)

  self.route[client] = forward

  try:

  def on_quit(self):

  while 一:

  原本念经过ssh端口转发的,然而尔不从机械A毗连ssh到B的权限。因而便本身用python写一个。

  readable, _, _ = select.select(self.inputs, [], [])

  for s in self.sock, self.route[self.sock]:

  if self.sock == self.proxy:

  import socket

  except KeyboardInterrupt:

  self.route = {}

  2.每一承受一个客户端的衔接恳求,就往要转发的地点修一条衔接恳求。即client->proxy->forward。proxy既是socket服务端(监听client),也是socket客户端(去forward恳求)。

  尔正在本身的电脑上须要用mongodb图形客户端,可是mongodb的服务器地点不对外网开放,只能经由过程先登录主机A,而后再从A衔接mongodb服务器B。

  self.route[forward] = client

  以前碰到一个场景是如许的:


诚信在线 除注明原创以外,其余均来自互联网以及微信朋友圈,如有侵权请联系站长立即删除!
文章地址:http://www.my517517.com/ZB/20170628329.html



上一篇:Python的加密模块md5、sha、crypt使用实例 下一篇:python模块简介之有序字典(OrderedDict)