Разобрать вывод команды в переменную LIVE (мониторинг сетевого трафика)
Я пишу сценарий мониторинга сети в Bash. Я использую базовую команду:ettercap -T -M ARP -i en1 // //
, Тогда я трубуegrep --color 'Host:|GET'
внутрь.
Пример вывода, который я получаю, выглядит следующим образом:
GET /images/srpr/logo11w.png HTTP/1.1.
Host: www.google.com.
GET /en-us/us/products HTTP/1.1.
Host: www.caselogic.com.
Мой желаемый результат:
Title: logo11w.png
URL: www.google.com/images/srpr/logo11w.png HTTP/1.1.
Title: Products - Case Logic
URL: www.caselogic.com/en-us/us/products
На что обратить внимание:HTTP/1.1.
и.
в конце хозяина ушли. Они также сформированы в одинURL
и есть пустая строка после каждогоTitle
/URL
листинга. Я попытался объединить их в один URL, проанализировав вывод команд в переменную с помощью
var=`sudo ettercap -T -M ARP -i en1 // // | egrep --color 'Host:|GET'` | echo $var
но очевидно, что это не работает, потому что ввод в переменную является командой, которая не выполняется, пока пользователь не запросит остановку (CTRL + C
).
Чтобы получить заголовок HTML-страницы, я использую командуwget -qO- 'https://url.goes/here' | perl -l -0777 -ne 'print $1 if /<title.*?>\s*(.*?)\s*<\/title/si'
, Если это что-то, у чего нет заголовка, например, изображения, то заголовок не подходит.
Любая помощь очень ценится, и извините, если то, что я написал, трудно прочитать, не стесняйтесь задавать вопросы.