web-dev-qa-db-ja.com

LinuxでURLをキャッチすることは可能ですか?

Windows用の優れたプログラム(URL Snooper: http://www.donationcoder.com/Software/Mouser/urlsnooper/index.html )があり、マシンで要求されているすべてのURLを表示できます。 。

そのようなプログラムはLinuxに存在しますか(できればコマンドライン)

7
simonwjackson

URL Snooperは、マシンで要求されているURLだけでなく、一部のページのHTMLソースに隠されているURLにも適用されるようです。必ずしも要求されていません。後者については、「 ファイルサーバーからファイルのリストをダウンロードする方法は? 」も参照してください。ここスーパーユーザー。または、Firefoxでメニューの[ツール]"[ページ情報]"[メディア]を参照するか、 Video DownloadHelper または nPlug などのアドオンを使用します。以下は、実際に要求されたすべてのURLの表示に適用されます。

コマンドライン ngrep はそれを行うことができますが、おそらくあなたが望むよりもはるかに多くの詳細を提供します。

例:ブラウザのロケーションバーに入力されたURLだけでなく、HTTPリクエスト全体が表示されます。 (つまり、実際にリクエストを行う前にブラウザによって解決されたIPアドレス、次にブラウザがそのIPアドレスに送信するHTTPリクエスト。)そして:結果のページで使用されるすべての画像などについてもこれが表示されます。

Ubuntuのデフォルトのインストールのように、ngrepをインストールする必要がある場合があります。

Sudo apt-get install ngrep

ポート80へのすべてのHTTPGET要求をキャプチャするには:

Sudo ngrep -W byline -qilw'get 'tcp dst port 80

それでも、それはあなたに全体の要求を示すでしょう。 (スーパーユーザーの場合は、自分で試してください!)出力をさらに制限して、->get、またはHostの行のみを表示するには:

Sudo ngrep -W byline -qilw'get 'tcp dst port 80\
 | grep -i "->\| get\| Host"

または、ポート80へのすべてのリクエストをキャプチャしますが、Refererヘッダーが設定されているリクエストは無視します(埋め込み画像などをリクエストするときに設定されますが、Webページのリンクをクリックすると設定されるため、onlyは、ブラウザのロケーションバーに直接入力されたリクエスト、または新しい場所で開かれたリクエストを表示しますウィンドウ、またはブックマークや電子メールから開かれます):

Sudo ngrep -W byline -qilwv'referer 'tcp dst port 80\
 | grep -i "->\| get\| Host"

Wireshark のようなスニファツールにもコマンドラインオプションがあります。そして、余談ですが、はるかに基本的なことですが、 tcpdump はほとんどのLinuxディストリビューションにインストールされています。

Sudo tcpdump -Alfq -s 1024\
 'tcpdstポート80およびip [2:2]> 40およびtcp [tcpflags]&tcp-Push!= 0'\
 | grep -i ">\| get\| Host"
12
Arjan

Pawel Pawilczによる rl-sniff もお勧めします。これは、ngrepをうまくラップする軽量のPerlスクリプトです。カラー出力もサポートしています。 ここ スクリーンショットがあります。要求されたすべてのURLをスニッフィングするためのシンプルなインターフェイスを提供します。

4
timn

Privoxy などのHTTPプロキシを使用できますが、それを使用するようにブラウザを構成する必要があります。ネットワークトラフィックをスヌープしません。アクセスしたURLのログを作成し、テキストエディタで表示できます。

1
Hugh Allen
  1. Navilonの提案に従って、リクエストをログに記録するプロキシを実行します。透過プロキシを使用する場合は、クライアント側で何も構成する必要はありません。
  2. ゲートウェイでスニファを実行します。
0
geek