一个django中间件,用于将传入的ip限制为管理面板

django-admin-ip-restrictor的Python项目详细描述


https://circleci.com/gh/uktrade/django-admin-ip-restrictor/tree/master.svg?style=shieldhttps://codecov.io/gh/uktrade/django-admin-ip-restrictor/branch/master/graph/badge.svghttps://img.shields.io/pypi/v/django-admin-ip-restrictor.svghttps://img.shields.io/pypi/pyversions/django-admin-ip-restrictor.svghttps://img.shields.io/pypi/l/django-admin-ip-restrictor.svg

一个django中间件,用于根据传入的IP限制对django管理员的访问

要求

  • python=3.4
  • django>;=1.10
  • django ipware=>;2,<;3

用法

首先安装软件包:

$ pip install django-admin-ip-restrictor

然后将中间件添加到您的设置中:

# Django 1.10+
MIDDLEWARE = [
    ...
    'admin_ip_restrictor.middleware.AdminIPRestrictorMiddleware'
]

settings.py中设置这些变量,以控制谁可以访问管理员(可以混合使用IPv4和IPv6):

RESTRICT_ADMIN=True
ALLOWED_ADMIN_IPS=['127.0.0.1', '::1']
ALLOWED_ADMIN_IP_RANGES=['127.0.0.0/24', '::/1']
RESTRICTED_APP_NAMES=['admin']

使用受限制的应用程序名来限制对更多应用程序的访问。始终包括管理应用程序。

如果使用环境变量,请确保变量接收正确类型的值。 django管理IP限制器自动转换以下格式:

$ export RESTRICT_ADMIN='true'
$ export ALLOWED_ADMIN_IPS='127.0.0.1,::1'
$ export ALLOWED_ADMIN_IP_RANGES='127.0.0.0/24,::/1'
$ export RESTRICTED_APP_NAMES='wagtail_admin,foo'

对于restrict_admin也可以使用这些值:true1falsefalse0

运行测试

安装toxpyenv

$ pip install tox pyenv

在pyenv中安装python版本

$ pyenv install 3.4.4
$ pyenv install 3.5.3
$ pyenv install 3.6.2

指定要使用的python版本:

$ pyenv local 3.4.4 3.5.3 3.6.2

运行测试:

$ tox

贡献

分叉项目,并提交一个公关!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java导入可能未定义的包   java正则表达式在尝试使alpha和非零无效时无效   java如何将一个包中的类导入另一个包中的另一个类?   java通过摄像头识别对象并做出反应   加密java。lang.IllegalAccessError:试图访问类javax。加密。来自javax类的密码$Transform。加密。密码   java将日期作为varchar传递给SQL Server中的存储过程   java将谷歌地图显示为libgdx游戏中的片段   java使用正则表达式区分字符串中的斜杠   java将用户鼠标移动到某一点   Java将“this”与非静态方法结合使用   java为什么textfield总是返回null?   未在流中调用java put方法。地图   Java Apache POI Excel文件在数据库对象中的映射是否具有类似HeaderColumn策略的功能?   java如何在JDK中手动更新时区?   java如果ArrayList<String>是Map中的一个键,如何从中检索值?   java扩展2类问题   java如何比较两个哈希映射   java新的Android版本将与旧的WebView文件选择器方法兼容   java如何在特定屏幕后关闭特定活动?   java中数字的自动拆箱应该使用数字。xxxValue()而不是强制转换为XXX。xxxValue()?