[英]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.