美文网首页
Django获取客户端IP方法

Django获取客户端IP方法

作者: 阡陌3536 | 来源:发表于2017-10-09 16:08 被阅读0次

    使用django来获取用户访问的IP地址,如果用户是正常情况下

    request.META['REMOTE_ADDR']

    可以获得用户的IP地址。但是有些网站服务器会使用ngix等代理http,或者是该网站做了负载均衡,导致使用remote_addr抓取到的是1270.0.1,这时使用HTTP_X_FORWARDED_FOR才获得是用户的真实IP。推荐使用以下代码:

    if request.META.has_key('HTTP_X_FORWARDED_FOR'):

    ip =  request.META['HTTP_X_FORWARDED_FOR']

    else:

    ip = request.META['REMOTE_ADDR']

    参考链接:http://m.blog.csdn.net/bravezhe/article/details/7374934

    使用以上方法在服务器上出现添加的页面无法访问,用print(request.META['HTTP_X_FORWARDED_FOR']) 和 print(request.META['REMOTE_ADDR'])前者打印出客户端正常IP后者打印处127.0.0.1证明IP获取正常(网站服务器使用的是nginx),所以

    if request.META.has_key('HTTP_X_FORWARDED_FOR'): 此处语法应该有错误

    最后去掉该判断语句,网站正常访问。

    相关文章

      网友评论

          本文标题:Django获取客户端IP方法

          本文链接:https://www.haomeiwen.com/subject/ypdpyxtx.html