HTTP GET リクエストでファイルの URL を取得するにはどうすればよいですか?

HTTP GET リクエストでファイルの URL を取得するにはどうすればよいですか?

次のような HTTP GET リクエストを実行して定期的にアクセスする Web サーバーがあります。http://www.example.com/index.php?file=12&hd=0

OKコンテンツ タイプvideo/x-flvとさまざまなコンテンツの長さを持つ応答を返します。明らかに、これは.flvファイルをダウンロードします。ダウンロードしているということは、ファイルは Web 上のどこかにホストされているはずです。

しかし、どうやって取り戻せばいいのか分からない直接このファイルのURL。WiresharkとFiddler4を使ってみましたが、役に立ちませんでした。URLを取得して、ビデオを同期、ビデオファイルへの直接 URL を受け入れることができます。ただし、上記の例のようなリンクを試しても機能しません。

答え1

ファイルにアクセスする他の方法はないと思います。PHP スクリプトはおそらくプライベートなローカル ファイルを読み取り、データを出力ストリームにリダイレクトするだけです。

これはおそらく、ホットリンクを防ぐために行われます。ファイルをダウンロードするには PHP スクリプトを呼び出す必要があるため、データをクライアントにストリーミングする前に、特定の項目 (たとえば、ログインしているかどうか) をチェックできます。

スクリプトが何もチェックせず (または IP アドレスのみをチェックし)、拡張子がないためプログラムが URL を拒否する場合は、次のように偽装してみることができます。

http://www.example.com/index.php?file=12&hd=0&ext=.flv

URL にダミー引数を追加して URL を終了させることで、.flvプログラムが URL を受け入れるようになる場合があります。

答え2

必ずしもファイルに直接アクセスする方法があるわけではありません。

ファイルは、Web サーバーのプライベート フォルダーに保存されているか、Web サーバーのみがアクセスできるまったく別のサーバーに保存されている可能性があります。投稿された URL は、ファイルにアクセスするための唯一の公開方法である可能性があります。

Wireshark キャプチャで 301 または 302 リダイレクトが表示されない限り、Web サーバーに問い合わせてファイルの取得元を確認する方法はありません。

関連情報