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

时间:2011-04-07 00:33:54

标签: python http tcp

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

我知道IP子类化(这是正确的术语)所以如果同一网络上的许多用户访问我的网站&有子类,他们都将拥有相同的IP地址,但没关系,我不希望我的IP识别准确,如果用户没有cookie,它只是一个备份。

如果我有HTTP请求,我可以获取请求者/发件人的IP地址吗?例如,要获取浏览器类型,请检查HTTP(标头?)用户代理。由于我对数据通信知之甚少,如果HTTP请求确实包含IP地址,它不会有最后一跳(路由器/交换机)的IP地址,还是我在想TCP?

我正在使用Python&amp; CGI;那么有没有办法通过查看HTTP请求或TCP数据包来确定HTTP请求者的IP地址(我从未在python中使用TCP,我怎么能在python中查看数据包?)。 < / p>

1 个答案:

答案 0 :(得分:1)

不确定。使用cgios。客户端的IP地址位于environ变量中,标题为REMOTE_ADDR。例如,以下内容将打印出客户端的IP地址:

import cgi
import os

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