まだ中学生のブログ

スマホ関連、Google関連のことを書いてます。IT系勤務、既婚、精神年齢:中学生。

【Docker】プロキシサーバーでストリーミングしている動画のURLを知る

プロキシサーバーでストリーミング先のURLを知る

概要

動画のストリーミング先のURLをプロキシサーバーのアクセスログによって調べる方法をメモ。

環境

  • Mac
    • Vagrant
      • Docker
        • squid

Mac本体で動画ストリーミング再生して、squid on Docker on Vagrantのアクセスログを解析する。

Vagrantの事前準備

Mac本体からポートフォワードの設定をする。

  config.vm.network "forwarded_port", guest: 3128, host: 3128

私はubuntu15_04を使用。 別に他のディストリビューションで問題なし。(結局はDockerだし。)

プロキシの設定

設定 --> ネットワーク

ネットワーク環境にsquidなどと別の構成を作っておくと良い。

f:id:madachugakusei:20161112214940p:plain

※プロキシ設定をするとsquidを立ち上げていないときはインターネット接続できなくなる。

詳細からプロキシ設定へ進む

f:id:madachugakusei:20161112215228p:plain

次の2つにチェックを入れる

  • Webプロキシ[HTTP]
  • 保護されたWebプロキシ(HTTPS)

2つともに次の項目を入力する

  • プロキシサーバーアドレス
    • 127.0.0.1
  • ポート
    • 3128

f:id:madachugakusei:20161112215359p:plain

この設定を済ませた時点でsquid起動まではインターネットに接続できないので注意。

Vagrant上でsquid on Dockerを立ち上げる

Dockerイメージはsquidがつかいやすそうなこれを使う。

squid起動

#!/bin/sh

$ sudo docker run --name squid -it --rm \
    --publish 3128:3128 \
    --volume /srv/docker/squid/cache:/var/spool/squid3 \
    sameersbn/squid:3.3.8-20

この時点でインターネットにつながったはず。

別ターミナル(Vagrant上)で次のコマンドを実行するとMac上でアクセスしたURLが出て来る。

$ sudo docker exec -it squid tail -f /var/log/squid3/access.log

アクセスログをMac上に保存してsquidを終了する

※私はVagrantの共有フォルダを/vagrant_dataにしているので、Mac上に保存するために下記のようなスクリプトを作成

#!/bin/sh

sudo docker exec -it squid cat /var/log/squid3/access.log > /vagrant_data/squid/squid3_access.log
sudo docker stop squid

アクセスログから動画のURLを抽出する

動画はmp4のみとするとこんな感じ。

$ cat squid3_access.log | grep mp4 | sed 's/.*\(http.*\.mp4\).*/\1/g' >> mp4_list.txt

おわりに

悪用厳禁。