My pi server will not grab IPs otherwise.

This commit is contained in:
some weird guy
2023-08-31 09:35:20 -07:00
parent 5619166794
commit a2e607fff3
2 changed files with 28 additions and 2 deletions
+2 -2
View File
@@ -54,10 +54,10 @@ INSTALLED_APPS = [
X_FRAME_OPTIONS='SAMEORIGIN' X_FRAME_OPTIONS='SAMEORIGIN'
MIDDLEWARE = [ MIDDLEWARE = [
# Uncomment if you need HTTP_X_FORWARDED_FOR support
#'closedverse_main.middleware.ProxyMiddleware',
'django.middleware.security.SecurityMiddleware', 'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware',
# use this middleware if you need x-forwarded-for support
#'xff.middleware.XForwardedForMiddleware',
'django.middleware.common.CommonMiddleware', 'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware',
+26
View File
@@ -11,6 +11,32 @@ if settings.FORCE_LOGIN:
if hasattr(settings, 'LOGIN_EXEMPT_URLS'): if hasattr(settings, 'LOGIN_EXEMPT_URLS'):
EXEMPT_URLS += [compile(expr) for expr in settings.LOGIN_EXEMPT_URLS] EXEMPT_URLS += [compile(expr) for expr in settings.LOGIN_EXEMPT_URLS]
def get_client_ip(request):
try:
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for and ',' not in x_forwarded_for:
ip = x_forwarded_for.split(',')[0]
else:
ip = request.META.get('REMOTE_ADDR')
# for Cloudflare
ip = request.META.get('HTTP_CF_CONNECTING_IP', ip)
except Exception:
ip = request.META.get('REMOTE_ADDR')
return ip
class ProxyMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
request.META['REMOTE_ADDR'] = get_client_ip(request)
response = self.get_response(request)
return response
class CheckForBanMiddleware: class CheckForBanMiddleware:
def __init__(self, get_response): def __init__(self, get_response):
self.get_response = get_response self.get_response = get_response