備忘録

備忘録

pproxyを利用してポートごとに利用するproxyサーバを変更する方法

Ⅰ. はじめに

タイトルの通り「pproxyを利用してポートごとに利用するproxyサーバを変更する方法」です。
f:id:kagasu:20210920133528p:plain

Ⅱ. やり方

1. サンプルプログラム
import asyncio
import pproxy

basePort = 8000
loop = asyncio.get_event_loop()

def getProxies():
  return [
    '10.0.0.1:1080',
    '10.0.0.2:1080',
    '10.0.0.3:1080',
  ]

def startProxyServer(proxies):
  for i, x in enumerate(proxies):
    server = pproxy.Server(f'http+socks5://0.0.0.0:{basePort + i}')
    remote = pproxy.Connection(f'socks5://{x}')
    handler = loop.run_until_complete(server.start_server(dict(rserver=[remote])))
    print(f'socks5://0.0.0.0:{basePort + i} -> socks5://{x}')

if __name__ == '__main__':
  proxies = getProxies()
  startProxyServer(proxies)

  try:
    loop.run_forever()
  except KeyboardInterrupt:
    print('exit!')

  loop.close()

実行結果

省略