2012-02-12 124 views
0

我正在写一个程序来打开一个PCAP文件,然后过滤一些数据包,然后写分组数据作为文件字符串,但我做诺特知道为什么会这样progrme之后无所作为打开pcap文件。如何从PCAP文件过滤RTSP数据包

int rtsp = 0;

FileWriter的fstream2 =新的FileWriter( “E:\ write2.txt”,TRUE);

的BufferedWriter fbw2 =新的BufferedWriter(fstream2);

System.out.println(“RTSP:”); JpcapCaptor captor2 = JpcapCaptor.openFile(“E:\ rtsp_with_data_over_tcp.pcap”);

而(真){

分组packet2 = captor2.getPacket();

如果(packet2 == NULL || packet2 == Packet.EOF)中断;

rtsp = rtsp + 1; String PacketData2 = new String(packet2.data);

fbw2.write(PacketData2);

fbw2.newLine();
}

fbw2.close();

captor2.close();

的System.out.println( “RTSP:” + RTSP);

即使这最后一个打印语句也不起作用。

任何人都可以指导我吗? !

+0

如果你把'的System.out.println(packet2);'在while循环,它循环打印每个数据包? – ecle 2012-02-12 15:36:35

回答

1

据RTSP使用的默认端口,您可以过滤

rtsp   554/tcp Real Time Stream Control Protocol 
rtsp   554/udp Real Time Stream Control Protocol 
rtsp-alt  8554/tcp RTSP Alternate (see port 554) 
rtsp-alt  8554/udp RTSP Alternate (see port 554) 

http://www.cs.columbia.edu/~hgs/rtsp/

+0

我刚更改了pcap文件,现在这段代码正在工作。我想问一个问题,“看554港”是什么意思? rtsp流量到达8554还是用于查看554是否可用? – blackfyre 2012-02-12 16:49:26

+0

@ user1204089用于RTSP服务的端口通常在RTSP服务器的RTSP端口设置中定义。端口554和8554仅用于遵守IANA建议。如果端口554已被使用,IANA建议使用8554.但是,由RTSP系统集成商决定设置给定IP网络中的任何空闲端口。所以,端口554和8554并不总是意味着它们被用于RTSP。因此,您需要检查来自此端口的数据包/数据报以确认它们正在使用RTSP。 – 2012-02-13 02:30:07

+0

@ee谢谢!对于其他协议也是如此,例如MSMMS的默认端口是1755,那么我们可能会在这个端口上得到一些其他数据包,并且msmms可能会转到其他端口? – blackfyre 2012-02-13 11:12:33