基于IP的repoze.what限制。

repoze.what.plugins.ip的Python项目详细描述


它是一个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])检查 环境指向允许的IP地址。如果设置了http_x_forwarded_for 在环境中(意味着代理访问),远程地址被视为代理 地址和http_x_forwarded_for作为原始IP地址。

allowed可选,默认-None
允许访问的IP列表。可以是字符串,然后解释为 单个IP地址
proxies可选,默认-None

如果提供了列表或元组,则将其视为授权代理IP的列表 地址。

如果提供字符串或Unicode,则将其视为单个IP地址。

任何其他值-^ {TT6}$意味着所有代理都是 接受

您可以筛选传入的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

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

推荐PyPI第三方库


热门话题
java如何在构造函数外部添加鼠标侦听器   java如何使用比较器对列表进行排序以正确排序空值?   javajavax。由于javax,邮件“535.7.3身份验证失败”。邮件升级(v1.3.1至v1.5.2)   java将arraylist流到固定的二维数组中并打印?   RecyclerView适配器上的java上下文   java如何为此Twitter API为KafkaProducer建立连接   java Spring安全性重写WebSecurity配置适配器的配置(AuthenticationManagerBuilder)是否会影响全局应用程序?   线程“awteventque0”NullPointerException中的java异常   if条件中的null值和null指针异常java   java树集<Object>允许相同类型的多个对象   java定义类;我认不出   字符串java replaceAll()   JAVAutil。scanner(Java)读取文件时如何跳过空格?   java在swing中关闭flash屏幕   java在Wildfly 16中的应用程序中加载pk12文件   有没有工具可以自动生成屏幕抓取的Java代码   创建意图时,java方法getParcelableExtra()返回null   将数据从java传递到jsp   java Android Studio |永久保存布局