Можно ли ловить URL в Linux?

Существует отличная программа для Windows (URL Snooper: http://www.donationcoder.com/Software/Mouser/urlsnooper/index.html), которая позволяет просматривать все URL-адреса, запрашиваемые на компьютере.

Существует ли какая-либо такая программа в Linux (предпочтительно из командной строки)

4 ответа

Решение

Кажется, что URL Snooper применяется не только к URL-адресам, запрашиваемым на компьютере, но и к URL-адресам, скрытым в источнике HTML какой-либо страницы, которые еще не обязательно запрашиваются. Для последнего см. Также " Как загрузить список файлов с файлового сервера? " Здесь, в Super User. Или в Firefox см. Меню Инструменты "Информация о странице" Мультимедиа или используйте надстройки, такие как Video DownloadHelper или UnPlug. Следующее относится к просмотру всех URL, которые фактически запрашиваются.

Командная строка ngrep мог бы сделать это, но дает гораздо больше деталей, чем вы, вероятно, хотели бы.

Как: он не просто покажет вам URL, введенный в адресную строку браузера, но и весь HTTP-запрос. (Итак: IP-адрес, разрешенный браузером до фактического выполнения запроса, а затем HTTP-запрос, который браузер отправляет на этот IP-адрес.) И: он также будет отображать это для каждого изображения и т. Д., Используемых на получающейся странице.

Вам может понадобиться установить ngrep, как при стандартной установке Ubuntu:

 sudo apt-get установить ngrep 

Чтобы перехватить все HTTP-запросы GET к порту 80:

 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 набор заголовков (устанавливается при запросе встроенных изображений и т. д., но также устанавливается при нажатии на ссылку на веб-странице, таким образом, отображаются только те запросы, которые введены непосредственно в адресную строку браузера, либо открываются в новом окне, либо открываются из закладка или электронная почта):

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

Также инструменты анализа, такие как Wireshark, имеют параметры командной строки. И так же, как в стороне и гораздо более простой, tcpdump устанавливается в большинстве дистрибутивов Linux:

 sudo tcpdump -Alfq -s 1024 \
  'tcp dst port 80 и ip[2:2] > 40 и tcp[tcpflags] & tcp-push!= 0' \
  | grep -i " > \|get\|host" 

Я также могу порекомендовать url-sniff от Pawel Pawilcz. Это легкий Perl-скрипт, который прекрасно сочетается ngrep, Он также поддерживает цветной вывод. Здесь вы найдете скриншот. Это дает вам простой интерфейс для прослушивания всех запрошенных URL-адресов.

Вы можете использовать HTTP-прокси, такой как Privoxy, но вам придется настроить браузер для его использования - он не отслеживает сетевой трафик. Он создает журнал URL-адресов, которые вы можете просмотреть в текстовом редакторе.

  1. Запустите прокси, который регистрирует запросы в соответствии с рекомендациями navilon. Вам не нужно ничего настраивать на стороне клиента, если вы выбираете прозрачный прокси.
  2. Запустите сниффер на воротах.
Другие вопросы по тегам