Google App Engine に画像があり、サイトがそれをホットリンクしているとします。サイトのドメイン名を見つけるにはどうすればよいですか?
私の最初の考えは:
request.client
逆ルックアップを実行しますが、GAE では不可能であり、多くの時間がかかります。ファイルを要求しているサイトの URL を取得できるプロパティがあることは確かです (要求のどこか?)。GAE にはRequest クラスがありますが、web2py 内で動作させることができませんでした。
何か案は?
Google App Engine に画像があり、サイトがそれをホットリンクしているとします。サイトのドメイン名を見つけるにはどうすればよいですか?
私の最初の考えは:
request.client
逆ルックアップを実行しますが、GAE では不可能であり、多くの時間がかかります。ファイルを要求しているサイトの URL を取得できるプロパティがあることは確かです (要求のどこか?)。GAE にはRequest クラスがありますが、web2py 内で動作させることができませんでした。
何か案は?
リファラーはリクエスト ヘッダーから簡単に取得できます。このリファラーはなりすましの可能性がありますが、ほとんどの人はなりすましをせず、すでに解決されています。
手動で解決する以外に、DNS を自動的に解決する方法はありません。あなたが言ったように、DNS解決には余分な時間がかかり、Web2Pyや他のフレームワークがそれを行うのは意味がありません.
ドメイン名を探しているだけの場合(画像のURLが要求されたときにスクリプトを実行して要求をブロックしないようにするため)、それらは要求ログに記録されます。管理者で[ログ]に移動し、ドロップダウンから[リクエストのみ]を選択します。[オプション]を展開すると、関連するファイル名でフィルタリングできます。
次に、各リクエストログエントリを展開します。リファラーは、ハイフン、または200(またはその他)のステータスコードと転送されたサイズの直後の引用符で囲まれた文字列のいずれかです。すべてのクライアントがヘッダーをブロックまたはスプーフィングしているわけではない可能性が非常に高いため、リンク元のURLが表示されます。
SDKを使用してログをダウンロードし、ローカルで検索/処理することもできます。
appcfg.py --email=whatever request_logs some_filename