meet - Django ALLOWED_HOSTS rango de IPs
session_cookie_name django (5)
Aquí hay una solución rápida y sucia.
ALLOWED_HOSTS += [''172.17.{}.{}''.format(i,j) for i in range(256) for j in range(256)]
¿Hay alguna manera de establecer un rango de IPs ALLOWED_HOSTS en django?
Algo como esto:
ALLOWED_HOSTS = [''172.17.*.*'']
He encontrado tal solución para filtrar el rango de direcciones IP:
https://.com/a/36222755/3766751
Usando este enfoque, podemos filtrar las IP por cualquier medio (fe con expresiones regulares).
from django.http import HttpResponseForbidden
class FilterHostMiddleware(object):
def process_request(self, request):
allowed_hosts = [''127.0.0.1'', ''localhost''] # specify complete host names here
host = request.META.get(''HTTP_HOST'')
if host[len(host)-10:] == ''dyndns.org'': # if the host ends with dyndns.org then add to the allowed hosts
allowed_hosts.append(host)
elif host[:7] == ''192.168'': # if the host starts with 192.168 then add to the allowed hosts
allowed_hosts.append(host)
if host not in allowed_hosts:
raise HttpResponseForbidden
return None
Gracias por @Zorgmorduk
Mozilla ha lanzado un paquete de Python llamado django-allow-cidr que está diseñado para resolver exactamente este problema.
La publicación del blog del anuncio explica que es útil para cosas como controles de estado que no tienen un encabezado de Host
y solo usan una dirección IP.
Tendría que cambiar su dirección IP ''172.17.*.*''
Ligeramente para ser un rango CIDR como 172.17.0.0/16
No, esto no es posible actualmente. Según los documentos , se admite la siguiente sintaxis:
[''www.example.com''] # Fully qualified domain
[''.example.com''] # Subdomain wildcard, matches example.com and www.example.com
[''*''] # Matches anything
Si observa la implementación del método validate_host
, puede ver que no se admite el uso de *
como comodín.
Publiqué un ticket en Django; sin embargo, se me mostró que esto podría lograrse haciendo lo siguiente
from socket import gethostname, gethostbyname
ALLOWED_HOSTS = [ gethostname(), gethostbyname(gethostname()), ]