Python 使用web2py查找在Google app engine中热链接的站点的域名

Python 使用web2py查找在Google app engine中热链接的站点的域名,python,google-app-engine,web2py,reverse-lookup,Python,Google App Engine,Web2py,Reverse Lookup,假设我们在谷歌应用程序引擎中有一个图像,并且网站正在热链接它。 我怎样才能找到网站的域名 我的第一个想法是: 请求客户端 然后进行反向查找,但这在GAE中是不可能的,需要花费很多时间。 我非常确定有一个属性允许我获取请求文件的站点的url (请求中的某处?)。GAE有一个很好的解决方案,但我无法让它在web2py中工作 有什么想法吗?您可以很容易地从请求标题中获得推荐人。这个推荐人可以被欺骗,但大多数人不会欺骗它,它已经被解决了 除了手动解析DNS之外,没有自动解析DNS的方法。正如您所说,DN

假设我们在谷歌应用程序引擎中有一个图像,并且网站正在热链接它。 我怎样才能找到网站的域名

我的第一个想法是:

请求客户端

然后进行反向查找,但这在GAE中是不可能的,需要花费很多时间。 我非常确定有一个属性允许我获取请求文件的站点的url (请求中的某处?)。GAE有一个很好的解决方案,但我无法让它在web2py中工作


有什么想法吗?

您可以很容易地从请求标题中获得推荐人。这个推荐人可以被欺骗,但大多数人不会欺骗它,它已经被解决了


除了手动解析DNS之外,没有自动解析DNS的方法。正如您所说,DNS解析需要额外的时间,Web2Py或任何其他框架都没有必要这样做。

如果您只是想找到域名(而不是在请求图像URL时运行脚本阻止请求),那么它们将出现在请求日志中。在管理内容中,转到“日志”,从下拉列表中选择“仅请求”。如果展开“选项”,则可以筛选相关文件名

然后展开每个请求日志条目,referer要么是连字符,要么是紧跟在200(或其他)状态代码和传输大小之后的引号中的字符串。不是所有的客户端都阻止或欺骗了标题的可能性很大,因此您将看到链接自的URL

您还可以使用SDK下载日志,并在本地搜索/处理它们:

appcfg.py --email=whatever request_logs some_filename

我一直在搜索请求头和引用,但没有web2py的信息“大多数人不会欺骗它”-特别是它可以被客户端欺骗,但我认为不是由服务器直接链接图像?除非JavaScript可以指定请求的http引用程序。很可能客户不知道或不关心发生了什么。@一个接一个:在客户从hotlinker的网站请求之前,您无法检测是否有人对您的图像进行了热链接。在web2py中是referer还是referer?HTTP标准将其拼错为“referer”,大多数(但不是所有)web框架也会这样做。是的,但我的意思是,您不必担心欺骗,除非(a)客户端参与了犯罪,或者(b)敌方服务器可以提供一些JavaScript或其他内容,使客户端在向您发送图像时指定错误的Referer头。我只是想说(a)是如此罕见的不重要,希望(b)是不可能的。