備忘録

備忘録

pproxyを利用して複数IPアドレスをランダムに変化させる方法

Ⅰ. はじめに

タイトルの通り「pproxyを利用して複数IPアドレスをランダムに変化させる方法」です。

Ⅱ. やり方

やり方1(CLI
pproxy \
  -l http+socks4+socks5://0.0.0.0:8080 \
  -r http://10.0.0.1:3128 \
  -r socks5://10.0.0.2:1080 \
  -s rr \
  -v
やり方2(Python
import asyncio
import pproxy

listenUri = 'http+socks4+socks5://0.0.0.0:8080'
# listenUri = 'http+socks4+socks5://0.0.0.0:8080#user01:password'
server = pproxy.Server(listenUri)

# 直接指定
remotes = []
for x in ['http://10.0.0.1:3128', 'socks5://10.0.0.2:1080']:
  remotes.append(pproxy.Connection(x))

# ファイルから指定
# remotes = []
# f = open('proxies.txt', 'r', encoding='UTF-8')
# proxies = f.read().splitlines()
# for proxy in proxies:
#   remotes.append(pproxy.Connection('http://{0}'.format(proxy)))

args = {
  'rserver': remotes,
  'salgorithm': 'rr', # Round-robin
  'verbose': print
}

loop = asyncio.get_event_loop()
print('Server start {0}'.format(listenUri))
handler = loop.run_until_complete(server.start_server(args))
try:
  loop.run_forever()
except KeyboardInterrupt:
  print('exit!')

handler.close()
loop.run_until_complete(handler.wait_closed())
loop.run_until_complete(loop.shutdown_asyncgens())
loop.close()

実行結果

省略