diff --git a/circuits/web/wrappers.py b/circuits/web/wrappers.py index 38ccbffa5..25ef55bad 100644 --- a/circuits/web/wrappers.py +++ b/circuits/web/wrappers.py @@ -174,7 +174,16 @@ def __init__(self, sock, method="GET", scheme="http", path="/", self.cookie = SimpleCookie() - if sock is not None: + # get real ip (on proxy) + real_ip = None + for index in ('X-Real-IP', 'X-Forwarded-For'): + real_ip = self.headers.get(index) + break + + if real_ip is not None: + self.remote = Host(real_ip, "", real_ip) + + elif sock is not None: name = sock.getpeername() if name is not None: self.remote = Host(*name)