您好我想在django中获取客户端IP地址。我的网络服务器是Nginx。所以我在我的nginx conf中这样做
fastcgi_param REMOTE_ADDR $ remote_addr;
fastcgi_param X_FORWADRD_FOR $ proxy_add_x_forwarded_for;
问题是我在负载均衡器下有4台服务器,当我使用域名调用网站时,我在使用它时得到了服务器的ip(client_ip = request.META ['REMOTE_ADDR'])。但是,当我使用IP地址呼叫网站时,我只获得客户端IP
当我使用它时(client_ip = request.META ['X_FORWARDED_FOR'])我得到客户端ip和服务器的ip
我如何单独获取客户端IP
答案 0 :(得分:0)
目前我所做的是
ipaddress = request.META['X_FORWADRD_FOR']
ipaddress = ipaddress.split(",")
ip_address = ipaddress[0]
单独获取客户端
答案 1 :(得分:-1)
你可以重新融入the SetRemoteAddrFromForwardedFor middleware that was removed in Django 1.1。这会将request.META["REMOTE_ADDR"]
动态重置为客户端IP地址。