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

yipeiwu_com6年前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程序设计有所帮助。

相关文章

Python同时向控制台和文件输出日志logging的方法

本文实例讲述了Python同时向控制台和文件输出日志logging的方法。分享给大家供大家参考。具体如下: python提供了非常方便的日志模块,可实现同时向控制台和文件输出日志的功能。...

在Python中调用ggplot的三种方法

在Python中调用ggplot的三种方法

本文提供了三种不同的方式在Python(IPython Notebook)中调用ggplot。 在大数据时代,数据可视化是一个非常热门的话题。各个BI的厂商无不在数据可视化领域里投入大量...

浅谈Pandas Series 和 Numpy array中的相同点

相同点: 可以利用中括号获取元素 s[0] 可以的得到单个元素 或 一个元素切片 s[3,7] 可以遍历 for x in s 可以调用同样的函数获取最大最小值 s.mean() &nb...

python实现媒体播放器功能

本文实例为大家分享了python实现媒体播放器功能的具体代码,供大家参考,具体内容如下 playMP3.py # -*- coding: utf-8 -*- import wx;...

FFT快速傅里叶变换的python实现过程解析

FFT快速傅里叶变换的python实现过程解析

FFT是DFT的高效算法,能够将时域信号转化到频域上,下面记录下一段用python实现的FFT代码。 # encoding=utf-8 import numpy as np imp...