From 59245b140188befed34cded7a5fa7beec297a57d Mon Sep 17 00:00:00 2001 From: SergeantPanda Date: Wed, 19 Mar 2025 16:45:47 -0500 Subject: [PATCH] More refactoring. --- apps/proxy/ts_proxy/utils.py | 14 +++++++++++++- apps/proxy/ts_proxy/views.py | 9 +-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/apps/proxy/ts_proxy/utils.py b/apps/proxy/ts_proxy/utils.py index 46240aac..8a41a5fd 100644 --- a/apps/proxy/ts_proxy/utils.py +++ b/apps/proxy/ts_proxy/utils.py @@ -34,4 +34,16 @@ def detect_stream_type(url): return 'hls' # Default to TS - return 'ts' \ No newline at end of file + return 'ts' + +def get_client_ip(request): + """ + Extract client IP address from request. + Handles cases where request is behind a proxy by checking X-Forwarded-For. + """ + x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') + if x_forwarded_for: + ip = x_forwarded_for.split(',')[0] + else: + ip = request.META.get('REMOTE_ADDR') + return ip \ No newline at end of file diff --git a/apps/proxy/ts_proxy/views.py b/apps/proxy/ts_proxy/views.py index 364b0198..874e311f 100644 --- a/apps/proxy/ts_proxy/views.py +++ b/apps/proxy/ts_proxy/views.py @@ -10,6 +10,7 @@ from apps.proxy.config import TSConfig as Config from . import proxy_server from .channel_status import ChannelStatus from .stream_generator import create_stream_generator +from .utils import get_client_ip import logging from apps.channels.models import Channel, Stream from apps.m3u.models import M3UAccount, M3UAccountProfile @@ -21,14 +22,6 @@ from rest_framework.permissions import IsAuthenticated logger = logging.getLogger("ts_proxy") -def get_client_ip(request): - x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') - if x_forwarded_for: - ip = x_forwarded_for.split(',')[0] - else: - ip = request.META.get('REMOTE_ADDR') - return ip - @api_view(['GET']) def stream_ts(request, channel_id): """Stream TS data to client with immediate response and keep-alive packets during initialization"""