tcpdump只打印网址

时间:2013-07-17 21:14:35

标签: python tcpdump

有办法吗

tcpdump -i lo -A 

并打印所有网址,是否有连接?

我做了:

sudo tcpdump -i lo -A | grep Host: 

效果很好。但我想知道是否有选项可以在tcpdump

中做同样的事情

最后,有没有办法在python中执行此操作而不使用sys命令或Popen / subprocess

3 个答案:

答案 0 :(得分:3)

tcpdump无法根据数据包的内容进行过滤(无深度数据包检查),因为它只使用pcacp-filter。 您只需转储incoming TCP connections to your HTTP port的包裹即可提高性能。

tcpdump -i lo -A tcp port 80

TCPDUMP python:使用Pcapy

另一种选择是使用tshark

答案 1 :(得分:2)

你可以使用scapy sniff函数并使用regex或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)

答案 2 :(得分:1)

你想要使用的是libpcap,它是tcpdump使用的数据包捕获库。有一个python包装器,可以找到here

你可以在python中,然后在pcap / tcpdump提供的过滤之上构建你想要的任何过滤。然后显示这个过滤后的输出(或者你想在你的python脚本中做什么)。