在Google App Engine中使用web2py查找热链接网站的域名

2 投票
2 回答
585 浏览
提问于 2025-04-15 13:27

假设我们在Google App Engine上有一张图片,而一些网站直接链接到这张图片。那我该怎么找到这些网站的域名呢?

我最开始的想法是:

request.client

然后进行反向查找,但在GAE上这行不通,而且会花费很多时间。我很确定有一个属性可以让我获取请求这个文件的网站的URL(可能在request的某个地方)。GAE有一个请求类,但我在web2py中没法让它正常工作。

有没有什么好主意?

2 个回答

1

如果你只是想找出域名(而不是通过运行脚本来阻止请求),那么这些信息会在请求日志里。你可以在管理界面找到“日志”选项,从下拉菜单中选择“仅请求”。如果你展开“选项”,可以根据相关的文件名进行筛选。

接着,展开每个请求日志的条目,你会看到一个“referer”字段,它可能是一个短横线,或者是紧跟在200(或者其他状态码)后面的引号里的字符串,后面还会有传输的大小。大多数情况下,并不是所有的客户端都阻止或者伪造了这个头信息,所以你应该能看到链接的URL。

你也可以使用SDK下载这些日志,然后在本地进行搜索和处理:

appcfg.py --email=whatever request_logs some_filename
2

你可以很简单地从请求的头信息中获取到来源网址(referrer)。虽然这个来源网址可以被伪装,但大多数人并不会去伪装它,而且这个网址已经被处理好了。

除了手动去解析DNS,没有自动的方法可以完成这个解析。就像你说的,DNS解析需要额外的时间,所以对于Web2Py或者其他框架来说,去做这个是没有意义的。

撰写回答