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

2024-05-20 15:28:07 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

如果我有一个HTTP请求,我能得到请求者/发送者的ip地址吗?例如,为了获得浏览器类型,我检查HTTP(header?)用户代理。以我对数据通信的一知半解,如果HTTP请求确实包含了一个IP地址,那么它是否会有最后一跳(路由器/交换机)的IP地址,还是我在考虑TCP?在

我使用的是Python&cgi;那么有没有一种方法可以通过查看HTTP请求或TCP包来确定HTTP请求者的IP地址(我从来没有在Python中使用过TCP,如何在Python中查看数据包呢?)。


Tags: 用户ip网络http网站cookie地址方式
1条回答
网友
1楼 · 发布于 2024-05-20 15:28:07

当然可以。使用cgi,和os。客户机的IP地址位于environ变量中,其标题为REMOTE_ADDR。例如,以下命令将打印出客户端的ip地址:

import cgi
import os

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

相关问题 更多 >