Django&Flask 获取用户客户端IP地址的方法
引言
有时候需要获取远程用户的电脑IP地址,用来统计或限制用户访问。
方法
django框架的方法如下:
def get_ip(request):
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
ip = x_forwarded_for.split(',')[0]#所以这里是真实的ip
else:
ip = request.META.get('REMOTE_ADDR')#这里获得代理ip
return ip
flask框架的方法如下:
from flask import request
import socket
def get_ip_socket():
hostname = socket.gethostname()
ip = socket.gethostbyname(hostname)
if ip:
c_ip = ip
else:
c_ip = request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
return c_ip
其他方法,获取本机IP地址如下:
if request.headers.getlist("X-Forwarded-For"):
ip = request.headers.getlist("X-Forwarded-For")[0]
else:
ip = request.remote_addr
print("ip: %s"%ip)
print("ip: %s"%request.access_route[0])
print("ip: %s"%request.environ.get('HTTP_X_REAL_IP', request.remote_addr))
print("ip: %s"%request.headers.get("X-Real-Ip",""))
print("ip: %s"%request.remote_addr)
print("ip: %s"%request.headers.get("X-Forwarded-For",""))
print("ip: %s"%request.environ['REMOTE_ADDR'])
print("ip: %s"%request.environ['REMOTE_PORT'])
总结
感兴趣学习的可以加群和关注公众号。
作者:全栈测试开发日记
出处:https://www.cnblogs.com/liudinglong/
csdn:https://blog.csdn.net/liudinglong1989/
微信公众号:全栈测试开发日记
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号