跳转到主要内容

基于IP的repoze.what限制。

项目描述

这是一个repoze.what插件,它提供了一个ip_from谓词。

安装

easy_install:

$ <env>/bin/easy_install repoze.what.plugins.ip

pip:

$ <env>/bin/pip install repoze.what.plugins.ip

源代码

源代码可以在code.google.com找到。

用法

ip_from([allowed=None], [proxies=None]) 检查环境中的REMOTE_ADDR是否指向允许的IP地址。如果环境中有HTTP_X_FORWARDED_FOR设置(表示代理访问),则REMOTE_ADDR被视为代理地址,HTTP_X_FORWARDED_FOR视为原始IP地址。

allowed 可选,默认值 - None

允许访问的IP列表。可以是一个字符串,然后解释为单个IP地址

proxies 可选,默认值 - None

如果提供一个列表或元组,则被视为授权代理IP地址列表。

如果提供一个字符串或unicode,则被视为单个IP地址。

任何其他值 - bool(proxies) == True 表示接受所有代理

您可以过滤传入的IP地址

>>> from repoze.what.plugins.ip import ip_from
>>> p = ip_from(allowed=['192.168.1.1'])
>>> env = {'REMOTE_ADDR': '192.168.1.1'}
>>> p.is_met(env)
True
>>> env = {'REMOTE_ADDR': '192.168.1.10'}
>>> p.is_met(env)
False

默认情况下,代理访问被禁用。您可以使用 proxies=True 启用它

>>> p = ip_from(allowed=['192.168.0.0/24'], proxies=True)
>>> env = {
...     'REMOTE_ADDR': '192.168.1.1',           # proxy
...     'HTTP_X_FORWARDED_FOR': '192.168.1.5'   # origin
... }
>>> p.is_met(env)
True

您还可以明确指定允许的代理

>>> p = ip_from(allowed='192.168.1.5', proxies=['192.168.0.0/24'])
>>> env = {
...     'REMOTE_ADDR': '192.168.1.1',           # proxy
...     'HTTP_X_FORWARDED_FOR': '192.168.1.5'   # origin
... }
>>> p.is_met(env)
True

项目详情


下载文件

下载您平台所需的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

repoze.what.plugins.ip-0.2.tar.gz (17.8 kB 查看哈希值)

上传时间

构建分发

repoze.what.plugins.ip-0.2-py2.6.egg (36.8 kB 查看哈希值)

上传时间

repoze.what.plugins.ip-0.2-py2.5.egg (36.9 kB 查看哈希值)

上传时间

由以下提供支持