Python 是否可以从HTTP请求获取IP地址

Python 是否可以从HTTP请求获取IP地址,python,http,tcp,Python,Http,Tcp,我正在尝试识别访问我网站的用户。我知道给他们分配一个cookie&用这种方式识别他们。但是也可以使用他们的IP地址来识别他们吗? 我知道IP子类化(这是正确的术语)因此,如果同一网络上的许多用户访问我的站点并进行子类化,他们都将具有相同的IP地址,但这没关系,我不希望我的IP标识是准确的,如果用户没有cookie,这只是一个备份 如果我有一个HTTP请求,我可以得到请求者/发送者的ip地址吗?例如,要获取浏览器类型,我需要检查HTTP(头?)用户代理。在我对数据通信知之甚少的情况下,如果HTTP

我正在尝试识别访问我网站的用户。我知道给他们分配一个cookie&用这种方式识别他们。但是也可以使用他们的IP地址来识别他们吗?

我知道IP子类化(这是正确的术语)因此,如果同一网络上的许多用户访问我的站点并进行子类化,他们都将具有相同的IP地址,但这没关系,我不希望我的IP标识是准确的,如果用户没有cookie,这只是一个备份

如果我有一个HTTP请求,我可以得到请求者/发送者的ip地址吗?例如,要获取浏览器类型,我需要检查HTTP(头?)用户代理。在我对数据通信知之甚少的情况下,如果HTTP请求确实包含一个IP地址,它会不会有最后一个跃点(路由器/交换机)的IP地址,或者我会考虑TCP


我正在使用Python&cgi;因此,有没有一种方法可以通过查看HTTP请求或TCP数据包来确定HTTP请求者的IP地址(我从来没有在python中使用过TCP,我怎么能在python中查看数据包?。当然。使用
cgi
os
。客户端的IP地址位于标题为
REMOTE\u ADDR
environ
变量中。例如,以下内容将打印出客户端的ip地址:

import cgi
import os

print "Content-type: text/html"
print ""
print cgi.escape(os.environ["REMOTE_ADDR"])

谢谢你的回复:)。这是他们的IP地址还是最后一个路由器/交换机跃点的地址?这将是请求的来源,如果你代理请求,比如说nginx->apache,你将在apache中为远程地址获得127.0.0.1,如果你没有转发数据:
proxy\u set\u header X-Real-IP$REMOTE\u ADDR或类似代码,但是您需要检查X-Real-IP而不是REMOTE\u ADDR。