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'])

  总结

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

 

posted @ 2023-01-02 23:34  全栈测试开发日记  阅读(773)  评论(0)    收藏  举报