http://www.python.org/dev/peps/pep-0333/#environ-variables”rel=“nofollow noreferer”>environ,特别是。
但是,如果涉及代理,那么REMOTE_ADDR
将是代理人的地址,客户地址将(很可能)列入。
这里的职能是,在大多数情形下(所有信用额都到>Sævar):
def get_client_address(environ):
try:
return environ[ HTTP_X_FORWARDED_FOR ].split( , )[-1].strip()
except KeyError:
return environ[ REMOTE_ADDR ]
你们可以很容易地看到,通过撰写简单的轮椅和在浏览器上点一个浏览器,例如:
from eventlet import wsgi
import eventlet
from pprint import pformat
def show_env(env, start_response):
start_response( 200 OK , [( Content-Type , text/plain )])
return [ %s
% pformat(env)]
wsgi.server(eventlet.listen(( , 8090)), show_env)
将两者结合起来......
from eventlet import wsgi
import eventlet
from pprint import pformat
def get_client_address(environ):
try:
return environ[ HTTP_X_FORWARDED_FOR ].split( , )[-1].strip()
except KeyError:
return environ[ REMOTE_ADDR ]
def show_env(env, start_response):
start_response( 200 OK , [( Content-Type , text/plain )])
return [ %s
Client Address: %s
% (pformat(env), get_client_address(env))]
wsgi.server(eventlet.listen(( , 8090)), show_env)