ip based restrictions for repoze.what.
Project description
It is a repoze.what plugin that provides an ip_from predicate.
Installation
$ <env>/bin/easy_install repoze.what.plugins.ip
pip:
$ <env>/bin/pip install repoze.what.plugins.ip
Source
The source code can be found at code.google.com.
Usage
ip_from([allowed=None], [proxies=None]) checks whether REMOTE_ADDR in the environment points to an allowed IP address. If HTTP_X_FORWARDED_FOR is set in the environment (meaning proxy access) then REMOTE_ADDR is treated as a proxy address and HTTP_X_FORWARDED_FOR as an originating IP address.
- allowed optional, default - None
A list of IPs to allow access. Can be a string which is then interpreted as a single IP address
- proxies optional, default - None
If a list or tuple provided then treated as a list of authorized proxy IP addresses.
If a string or unicode provided then treated as a single IP address.
Any other value - bool(proxies) == True means that all proxies are accepted
You can filter the incoming IP address:
>>> 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
By default proxy access is disabled. You can enable it with 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
And you can also explicitly specify proxies to allow:
>>> 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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for repoze.what.plugins.ip-0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6837ff113c8e07068800a925248053cfbc2c12a93d94b9732b3b1ba5e01a5d5 |
|
MD5 | 47645cd70db4dcb27de8b89df9fbb3f6 |
|
BLAKE2b-256 | c03b15dfbc57cbedf2bf75e8bcfb550f658845e3449078e27b9abe5a2413d497 |
Hashes for repoze.what.plugins.ip-0.2-py2.6.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | 366e0a6019db02a35a128917a04e8d691b2f55944d0b0131b51446844b49f049 |
|
MD5 | 56c467a2a0b7ffbc48c1ce6d511cc262 |
|
BLAKE2b-256 | b33124a8d64e2338b5b20bb8cb29830408c283218cf683ae7c5d3316ccff1918 |
Hashes for repoze.what.plugins.ip-0.2-py2.5.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba20b4ad7e15a4d554239cfada336cf7663d2a330ccff75fd64f73915b8adc39 |
|
MD5 | ead055787f6142daffbe19f2e1c44211 |
|
BLAKE2b-256 | 69fa6a1568c343734d8ea6f7095c673986ef582363d8805289279db1c596ef0a |