Skip to content

Commit 7f68fc0

Browse files
committed
Added parameter for outgoing host
1 parent b7a198a commit 7f68fc0

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

src/main.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,12 @@ def __init__(self, src_ip, dst_domain, method):
3838
class ProxyServer:
3939
""" Class to handle the proxy server """
4040

41-
def __init__(self, host, port, blacklist,
42-
log_access, log_err, no_blacklist, auto_blacklist, quiet):
41+
def __init__(self, host, port, out_host,
42+
blacklist, log_access, log_err, no_blacklist, auto_blacklist, quiet):
4343

4444
self.host = host
4545
self.port = port
46+
self.out_host = out_host
4647
self.blacklist = blacklist
4748
self.log_access_file = log_access
4849
self.log_err_file = log_err
@@ -314,7 +315,6 @@ async def display_stats(self):
314315
col_width) + "\033[97m| "
315316
f"\033[97mErrors: \033[91m{self.errors_connections}\033[0m".ljust(
316317
col_width)
317-
318318
)
319319

320320
traffic_stat = (
@@ -331,7 +331,6 @@ async def display_stats(self):
331331
f"\033[97mAVG DL: \033[96m{self.format_speed(self.average_speed_in[0] / self.average_speed_in[1])}\033[0m".ljust(col_width) + "\033[97m| " +
332332
f"\033[97mAVG UL: \033[96m{self.format_speed(self.average_speed_out[0] / self.average_speed_out[1])}\033[0m".ljust(
333333
col_width)
334-
335334
)
336335

337336
title = "STATISTICS"
@@ -439,13 +438,13 @@ async def handle_connection(self, reader, writer):
439438
await writer.drain()
440439

441440
remote_reader, remote_writer = await asyncio.open_connection(
442-
host.decode(), port
441+
host.decode(), port, local_addr=(self.out_host, 0)
443442
)
444443

445444
await self.fragment_data(reader, remote_writer)
446445
else:
447446
remote_reader, remote_writer = await asyncio.open_connection(
448-
host.decode(), port
447+
host.decode(), port, local_addr=(self.out_host, 0)
449448
)
450449
remote_writer.write(http_data)
451450
await remote_writer.drain()
@@ -597,6 +596,8 @@ def parse_args():
597596
parser.add_argument("--host", default="127.0.0.1", help="Proxy host")
598597
parser.add_argument("--port", type=int,
599598
default=8881, help="Proxy port")
599+
parser.add_argument("--out_host", default="127.0.0.1",
600+
help="Outgoing proxy host")
600601

601602
blacklist_group = parser.add_mutually_exclusive_group()
602603
blacklist_group.add_argument(
@@ -703,6 +704,7 @@ async def run(cls):
703704
proxy = ProxyServer(
704705
args.host,
705706
args.port,
707+
args.out_host,
706708
args.blacklist,
707709
args.log_access,
708710
args.log_error,

0 commit comments

Comments
 (0)