8

有没有办法

tcpdump -i lo -A 

并让它打印所有网址,建立任何连接?

我已经做好了:

sudo tcpdump -i lo -A | grep Host: 

效果很好。但我想知道在 tcpdump 中是否有选项可以做同样的事情

最后,有没有办法在 python 中做到这一点而不使用 sys 命令或 Popen/subprocess

4

3 回答 3

3

tcpdump 无法根据数据包的内容进行过滤(没有深度数据包检查),因为它只使用 pcacp-filter。您可以通过仅将这些包转储为incoming TCP connections to your HTTP port.

tcpdump -i lo -A tcp port 80

TCPDUMP python:使用Pcapy

另一种选择是使用tshark

于 2013-07-26T11:21:53.193 回答
2

您可以使用 scapy 的嗅探功能并使用正则表达式或 grep

import scapy
tcpdump = sniff(count=5,filter="host 64.233.167.99",prn=lambda x:x.summary())
print tcpdump

更改过滤器文本的过滤器:)

或者您可能想保存流量并在wireshark中查看

wrpcap("temp.cap",pkts)
于 2013-07-22T12:07:41.930 回答
1

您要使用的是 libpcap,它是 tcpdump 使用的数据包捕获库。有一个 python 包装器可以在这里找到。

您可以在 python 中,在 pcap/tcpdump 已经提供的过滤之上构建您想要的任何过滤。然后显示此过滤后的输出(或您想要在 python 脚本中执行的任何操作)。

于 2013-07-28T04:31:09.040 回答