How to install repoze.what.plugins.ip
- Download and install ActivePython
- Open Command Prompt
- Type
pypm install repoze.what.plugins.ip
Lastest release
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