1# SECURE_PROXY_SSL_HEADER SSL安全证书中的 2x_forwarded_for = request.META.get("SECURE_PROXY_SSL_HEADER") 3 if x_forwarded_for: 4 user_ip = x_forwarded_for.split(',')[-1].strip() 5 else: 6 user_ip = request.META.get('REMOTE_ADDR')
因为网站服务器会使用ngix等代理https(部署了SSL安全证书),如果没有部署SSL安全证书可以使用下面的代码获取http访问的IP地址
1if request.META.has_key('HTTP_X_FORWARDED_FOR'): 2 user_ip = request.META['HTTP_X_FORWARDED_FOR'] 3else: 4 user_ip = request.META['REMOTE_ADDR']
效果图:

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