【发布时间】:2015-11-17 10:33:54
【问题描述】:
我正在用 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'。如果是没有标题的东西,比如图片,没有标题也没问题。
非常感谢任何帮助,如果我写的内容难以阅读,请随时提出问题。
【问题讨论】: