我正在尝试查看传输到网络上特定多播地址的流量,以便分析我们正在使用的协议.
我没有在设置上使用Wireshark(不幸的是).TCPDump虽然可用.那么,任何人都可以告诉我一个命令有TCPDump过滤器只能查看传输到一个多播组播组地址的消息吗?
如何tcpdump解析名称并保留端口号未解决?
来自男人:
-n Don’t convert host addresses to names. This can be used to avoid DNS lookups.
-nn Don’t convert protocol and port numbers etc. to names either.
Run Code Online (Sandbox Code Playgroud)
设定tcpdump -nn跳过该决议既地址和端口.
如何连接两个tcpdump文件,以便一个流量将在文件中出现?具体来说,我想"加倍"一个tcpdump文件,以便所有会话将一个接一个地重复顺序几次.
我需要捕获SIP和RTP流量以发现问题.我可以很好地捕获SIP消息,但是捕获RTP流量时遇到问题.
我尝试了以下但是这只是取出SIP包而没有RTP.
tcpdump -T rtp -vvv src -s 1500 -i any -w /home/lantrace_test2.pcap port 5060
我想这样做的另一种方式是rtp使用一系列UDP端口,捕获我们用于RTP流量的范围,但我找不到捕获一系列端口的方法,因此不确定tcpdump是否支持捕获端口范围
感谢您的任何帮助,您可以提供
我在DD-WRT路由器上运行tcpdump,以便从手机中捕获上行链路数据.我想只听一些mac地址.为此,我尝试使用类似于Wireshark的语法运行命令:
tcpdump -i prism0 ether src[0:3] 5c:95:ae -s0 -w | nc 192.168.1.147 31337
这样我就可以收听所有具有初始mac地址的设备5c:95:ae.
问题是语法错误,我想知道是否有人知道正确的语法来获得我想要的东西.
使用tcpdump在接口上捕获LLDP报文的格式是什么?
我尝试了以下格式,但它的工作原理:
tcpdump -w test.pcap -i eth0 lldp -vv
Run Code Online (Sandbox Code Playgroud) 1 import subprocess
2 raw = raw_input("Filename:").lower()
3 ip = raw_input("Host:").lower()
4 cmd = subprocess.call("tcpdump -c5 -vvv -w" + " raw " + " ip ",shell=True)
Run Code Online (Sandbox Code Playgroud)
所以这是我的剧本.除了一个关键目标,我使用原始输入一切正常.它允许我输入我想要的任何东西,但是当它用于保存文件或使用ip/host时,doe实际上并没有做任何事情.当然它给了我数据包,但是从localhost而不是我输入的主机.
我怎么知道这不起作用是因为我的第一个原始输入是文件名,所以我放入测试,当我在文件夹中查看我的脚本是,它产生一个名为"raw"的文件意思,它实际上并没有带我的输入只使用我的"X"内的什么...
所以我有机会来到这个:
1 import subprocess
2 raw = raw_input("Filename:").lower()
3 ip = raw_input("Host:").lower()
4 cmd = subprocess.call("tcpdump -c5 -vvv -w" + raw + "host" + ip,shell=True)
Run Code Online (Sandbox Code Playgroud)
这很好,因为它实际上需要-w但它现在将其保存为rawhostip而不是"raw"输入.作为参考,这是该命令在终端中的样子:
tcpdump -c5 -vvv -w savename host wiki2
Run Code Online (Sandbox Code Playgroud)
只有两个变量是savename和wiki2,其余的变量需要命令才能工作.
使用此脚本我收到此错误:
import subprocess
raw = raw_input("Filename:").lower()
ip = raw_input("Host:").lower()
cmd = subprocess.call("tcpdump -c5 -vvv -w" + raw, "host" …Run Code Online (Sandbox Code Playgroud) 我需要tcpdump二进制文件android-x86.这是我做的:
sudo apt-get install gcc-i686-linux-android
sudo apt-get install byacc
sudo apt-get install flex
wget http://www.tcpdump.org/release/tcpdump-4.9.0.tar.gz
wget http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz
tar zxvf tcpdump-4.9.0.tar.gz
tar zxvf libpcap-1.8.1.tar.gz
cd libpcap-1.8.1
export CC=gcc
./configure --host=i686-pc-linux-gnu --with-pcap=linux
make
cd ..
cd tcpdump-4.9.0
export ac_cv_linux_vers=3
export CFLAGS=-static
export CPPFLAGS=-static
export LDFLAGS=-static
./configure --host=i686-pc-linux-gnu --disable-ipv6
Run Code Online (Sandbox Code Playgroud)
但是当我运行最后一个命令时,我收到以下错误:
configure: WARNING: unrecognized options: --disable-ipv6
checking build system type... x86_64-unknown-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for i686-pc-linux-gnu-gcc... gcc
checking whether the C compiler works... yes
checking for C …Run Code Online (Sandbox Code Playgroud) 我有一堆用tcpdump创建的pcap文件.我想将这些存储在数据库中,以便于查询,索引等.我认为mongodb可能是一个不错的选择,因为以Wireshark/TShark将它们呈现为JSON文档的方式存储数据包似乎很自然.
应该可以使用tshark创建PDML文件,解析它们并将它们插入到mongodb中,但我很好奇是否有人知道现有/其他解决方案.
我试图在python中处理tcpdump输出.
我需要的是运行tcpdump(捕获数据包并给我信息)并读取输出并处理它.
问题是tcpdump一直在运行,我需要在输出后立即读取数据包信息并继续执行.
我试着查看python的子进程并尝试使用popen调用tcpdump并管道stdout但它似乎没有用.
关于如何进行此操作的任何指示.
import subprocess
def redirect():
tcpdump = subprocess.Popen("sudo tcpdump...", stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
while True:
s = tcpdump.stdout.readline()
# do domething with s
redirect()
Run Code Online (Sandbox Code Playgroud)