Python使用django获取用户IP地址的方法

yipeiwu_com7年前Python基础

本文实例讲述了Python使用django获取用户IP地址的方法。分享给大家供大家参考。具体如下:

函数实现:

def get_client_ip(request):
try:
  real_ip = request.META['HTTP_X_FORWARDED_FOR']
  regip = real_ip.split(",")[0]
except:
  try:
    regip = request.META['REMOTE_ADDR']
  except:
    regip = ""
return regip

问题是会在有的地方不好使,检测发现request.META根本无key值等于HTTP_X_FORWARDED_FOR和REMOTE_ADDR。服务器采用nginx+fastcgi实现。

解决办法:

在nginx的fastcgi配置中加入如下:

fastcgi_param REMOTE_ADDR $remote_addr;

希望本文所述对大家的Python程序设计有所帮助。

相关文章

Django forms表单 select下拉框的传值实例

今儿继续做项目,学习了Django的forms生成前端的代码。 forms.py class SignupForm(forms.Form): username = forms.C...

详解python实现交叉验证法与留出法

详解python实现交叉验证法与留出法

在机器学习中,我们经常在训练集上训练模型,在测试集上测试模型。最终的目标是希望我们的模型在测试集上有最好的表现。 但是,我们往往只有一个包含m个观测的数据集D,我们既要用它进行训练,又要...

Python入门之三角函数全解【收藏】

Python中的三角函数位于math模块内。 引入模块: import math 输出pi: import math print(math.pi) 得:3.14159265358979...

python 执行shell命令并将结果保存的实例

方法1: 将shell执行的结果保存到字符串 def run_cmd(cmd): result_str='' process = subprocess.Popen(cmd, sh...

简单了解django缓存方式及配置

前言 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存, 1. 缓存的概述: 缓存将一个某个views的...