基于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 JPanel不会对键绑定做出反应   当时间大于零时,不得在UI线程上调用java Await   JTextArea的java线程安全。追加   Java用户输入的字和行计数器   java以spreedsheat格式将数据保存到文件中   java构造函数的意义是什么?   java findViewById返回null,尽管组件的ID存在   java如何向按钮添加图像   java如何中断ExecutorService的线程   java如何将属性(例如枚举)绑定到不同类型的组件属性(例如每个枚举的映像)?   随机森林分类器的java实现   html使用java连接到一个站点并发布,HTTP状态代码200   从类访问属性时发生java编译错误   Java自动填充ArrayList,搜索更好的选项