簡體   English   中英

顯示數據包的IP地址

[英]Display IP address from packets

如何從數據包中顯示IP地址。

我能夠顯示端口和協議,但不能顯示pcap file的IP地址。

我正在使用jnetpcap 有幫助嗎?

jnetpcap團隊聲明“ 盡管這些是本機C庫教程,但您會發現調用的過程和順序幾乎相同。如果您了解C和Java語言,那么將這些教程翻譯成java和jNetPcap應該不會有太多麻煩API。 “話雖如此,請查看jnetpcap團隊在其網站上推薦的這篇非常深入的教程。

看看接近結尾,在實際的嗅探下 ,教程在內存中列出數據包內容,並告訴你確切找到IP頭的位置。

其他方案:

如果您能夠獲得pcap文件,您應該能夠使用本機DatagramPacket類來滿足您的需求。 DatagramPacket有一個名為getSocketAddress()的方法,它將為您提供IP地址和端口號。

PcapPacketHandler<String> jpacketHandler = new PcapPacketHandler<String>() {  

        final Tcp tcp=new Tcp();

    final Ip4 ip = new Ip4(); 

                public void nextPacket(PcapPacket packet, String user) {  


                    final Tcp tcp=new Tcp();
                        if(packet.hasHeader(tcp)){
                        if(packet.hasHeader(ip)){

                        packet.getHeader(tcp);
                        System.out.printf("Received packet at %s caplen=%-4d len=%-4d %s %s\n",  
                        new Date(packet.getCaptureHeader().timestampInMillis()),   
                        packet.getCaptureHeader().caplen(),  // Length actually captured  
                        packet.getCaptureHeader().wirelen(), // Original length   
                        user,FormatUtils.ip(ip.source())                              // User supplied object  
                        );  
                        //JBuffer buffer = packet;
                        //int size=packet.size();
                        byte[] arr=packet.getByteArray(0, packet.size());

                    }}}

            };  

wireshark能夠顯示(和捕獲)數據。 我將研究jnetpcap。

編輯:我已經查閱了教程( http://jnetpcap.com/tutorial/usage )。 參見第72行(創建返回對象)和108-112(填充和讀取返回對象)。

我可以使用下面的Github示例從PCAP獲取源端點和目標端點的IP地址和端口號:

https://github.com/arisath/Pcap-dissection/blob/master/PcapDissector.java

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM