erichhasl 8 лет назад
Родитель
Сommit
d6486264ae
3 измененных файлов: 25 добавлений и 0 удалений
  1. +20
    -0
      web_dev/sas_web/sas_web/block_ip.py
  2. +1
    -0
      web_dev/sas_web/sas_web/settings.py
  3. +4
    -0
      web_dev/sas_web/startpage/views.py

+ 20
- 0
web_dev/sas_web/sas_web/block_ip.py Просмотреть файл

@@ -0,0 +1,20 @@
from django.shortcuts import render
from startpage.models import Banned


class BlockedIpMiddleware(object):

def process_request(self, request):
if get_client_ip(request) in [b.ip_address for b in
Banned.objects.all()]:
return render(request, 'startpage/bann.html')
return None


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

+ 1
- 0
web_dev/sas_web/sas_web/settings.py Просмотреть файл

@@ -56,6 +56,7 @@ INSTALLED_APPS = (
)

MIDDLEWARE_CLASSES = (
'sas_web.block_ip.BlockedIpMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',


+ 4
- 0
web_dev/sas_web/startpage/views.py Просмотреть файл

@@ -8,3 +8,7 @@ def index(request):

def impressum(request):
return render(request, 'startpage/impressum.html')


def banned(request):
return render(request, 'startpage/bann.html')

Загрузка…
Отмена
Сохранить