Django&Flask 获取用户客户端IP地址的方法

  引言

  有时候需要获取远程用户的电脑IP地址,用来统计或限制用户访问。

  方法

  django框架的方法如下:

1
2
3
4
5
6
7
8
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框架的方法如下:

1
2
3
4
5
6
7
8
9
10
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地址如下:

1
2
3
4
5
6
7
8
9
10
11
12
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'])

  总结

  感兴趣学习的可以加群和关注公众号。

 

posted @   全栈测试开发日记  阅读(649)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
  引言  方法  django框架的方法如下:  flask框架的方法如下:  其他方法,获取本机IP地址如下:  总结
点击右上角即可分享
微信分享提示