使用django来获取用户访问的IP地址,如果是正常情况
request.META['REMOTE_ADDR']
如果使用了nginx或者负载均衡的,可以使用HTTP_X_FORWARDED_FOR,当然对方需要插入这个头。
if request.META.has_key('HTTP_X_FORWARDED_FOR'): ip = request.META['HTTP_X_FORWARDED_FOR'] else: ip = request.META['REMOTE_ADDR']
也可以通过中间件的形式直接加入到django的项目中统一控制。
参考github:https://github.com/un33k/django-ipware
或:https://pypi.python.org/pypi/django-xff/1.0.3
nginx的日志配置,加上remote_addr就行。
log_format main '$remote_addr $host $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" "$upstream_response_time" "$upstream_addr" "$upstream_status" $request_time';
说点什么
欢迎讨论
测试