Nginx+uWSGI+Django+SSL(https)安全证书中获取访问的IP地址信息

陈占占 等级 144 0 0
标签:
# SECURE_PROXY_SSL_HEADER SSL安全证书中的
x_forwarded_for = request.META.get("SECURE_PROXY_SSL_HEADER")
    if x_forwarded_for:
        user_ip = x_forwarded_for.split(',')[-1].strip()
    else:
        user_ip = request.META.get('REMOTE_ADDR')

Nginx+uWSGI+Django+SSL(https)安全证书中获取访问的IP地址信息 因为网站服务器会使用ngix等代理https(部署了SSL安全证书),如果没有部署SSL安全证书可以使用下面的代码获取http访问的IP地址

if request.META.has_key('HTTP_X_FORWARDED_FOR'):
    user_ip =  request.META['HTTP_X_FORWARDED_FOR']
else:
    user_ip = request.META['REMOTE_ADDR']

效果图: Nginx+uWSGI+Django+SSL(https)安全证书中获取访问的IP地址信息

# 单纯测试可以不要参数url_ip,url_ip是访问网站地址目录
def blog_username_ip(request, url_ip):
    x_forwarded_for = request.META.get("SECURE_PROXY_SSL_HEADER")
    if x_forwarded_for:
        user_ip = x_forwarded_for.split(',')[-1].strip()
    else:
        user_ip = request.META.get('REMOTE_ADDR')
    # 获取用户名的名字
    username = request.META.get('USERNAME')
    # 获取用户访问的时间
    create_time = timezone.now()
    # 获取对应的数据,储存到MySQL数据库中
    # models.BlogUsernameIp.objects.create(username=username, ip=user_ip, ip_time=create_time, blog_url=url_ip)
    print("IP地址:" + user_ip, "用户名:" + username, "时间:" + str(create_time), "目录:" + url_ip)
    return None

个人博客:https://www.chenzhanxu.top/

收藏
评论区

相关推荐

Python 快速验证代理IP是否有效
有时候,我们需要用到代理IP,比如在爬虫的时候,但是得到了IP之后,可能不知道怎么验证这些IP是不是有效的,这时候我们可以使用Python携带该IP来模拟访问某一个网站,如果多次未成功访问,则说明这个代理是无效的。代码如下:pythonimport requestsimport randomimport timehttp_ip '118.
JN_0006:MongoDB未授权访问漏洞处理
开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作而且可以远程访问数据库。 **2.****【修复建议】:**临时方案:配置AUTH,做好访问认证。打开MongoDB配置文件(.conf),设置为auth=true; 修改访问端口和指定访问ip。使其只监听私有IP(或本地IP),不监听任何公
HTTPS 证书被伪造了怎么办?
`HTTPS` 协议的安全依赖于它的证书机制,如果攻击者申请到了一张和你的网站一摸一样的证书,那你网站的安全机制也就不复存在了。本文来聊一聊,如何预防 `HTTPS` 证书伪造。 证书劫持 ---- ![](https://oscimg.oschina.net/oscnet/ba3fe48d-b1bb-417a-9fc6-4f4f6c6510de
HTTPS安全证书访问连接知识讲解
**HTTPS安全证书访问连接知识讲解** 01:网络安全涉及的问题: ①. 网络安全问题-数据机密性问题 传输的数据可能会被第三方随时都能看到 ②. 网络安全问题-数据完整性问题 传输的数据不能随意让任何人进行修改 ③. 网络安全问题-身份验证问题 第一次通讯时,需要确认通讯双方的身份正确 02:网络安
HTTPS是如何保证安全的
HTTP存在的问题 --------- 1. **窃听风险**:通信使用明文(不加密),内容可能会被窃听(第三方可能获知通信内容) 2. **冒充风险**:不验证通信方的身份,因此有可能遭遇伪装 3. **篡改风险**:无法证明报文的完整性,所以有可能已遭篡改 HTTPS ----- ![](https://osci
Android https 自定义ssl证书使用
Android https自定义ssl证书使用 1,服务端配置单向认证,给出server.crt 2,通过命令生成bks文件 keytool -import -alias cert123 -file server.crt -keystore cert123.bks -storetype BKS -providerClass org.bouncycast
Golang代码实现HTTPs(HTTPS证书生成和部署)
在win7下试试: 1.**实现一个最简单的HTTPS Web Server** // gohttps/2-https/server.go package main import ( "fmt" "net/http" ) func handler(w http.R
IPSec基本原理、应用场景、配置
一、IPSec技术的基本原理详解及应用场景 ===================== https://blog.csdn.net/weixin\_43996007/article/details/104087278 IPSec简介 IPSec的英文是Internet Protocol Security,是一个协议包,通过对IP协议的分组进行加密和认证
Nginx proxy_set_header 理解
**用户认证接口:根据客户端IP和port,进行IP反查和端口范围确认,如符合则用户认证通过。** 当前使用的是Nginx负载均衡,从客户端到Nginx端 ip和port都对,从Nginx到应有服务器上-port端口变成很奇怪的端口号。真是遇到的问题,登录页的ip和port在登录验证没有问题,但在登录完成后跳转的时候,端口号发生了变化。跟nginx服务器
PHP操作Redis常用技巧总结
**一、Redis连接与认证** 1 2 3 4 `//连接参数:ip、端口、连接超时时间,连接成功返回true,否则返回false` `$ret` `=` `$redis` `->connect(` `'127.0.0.1'` `, 6379, 30);` `//密码认证:成功返回true,否则返回false` `$ret` `=` `$r
Spring security(四)
> 关注我,可以获取最新知识、经典面试题以及技术分享   现在主流的登录方式主要有 3 种:账号密码登录、短信验证码登录和第三方授权登录,前面一节[Spring security(三)---认证过程](https://my.oschina.net/ccwwlx/blog/3115960)已分析了spring security账号密码方式登陆,现在我们来分析
Tomcat 服务配置https(JKS格式SSL证书)
一、申请SSL证书 我使用的是腾讯云服务申请的免费证书,申请教程如下: [https://my.oschina.net/u/2820979/blog/3112997](https://my.oschina.net/u/2820979/blog/3112997) 二、Tomact 配置https 将下载的证书拷贝linux服务器下tomact服务器co
Nginx+uWSGI+Django+SSL(https)安全证书中获取访问的IP地址信息
SECUREPROXYSSLHEADER SSL安全证书中的xforwardedfor request.META.get("SECUREPROXYSSLHEADER") if xforwardedfor: userip xforwardedfor.split(',')因为网站服务器会使用ngix等代理https(部署了SSL安全证书)