Bonjour,
Je suis entrain de concevoir une application qui me permet de capter les paquets entrant et sortant de mon interface réseau, pour realise ça j utilise JPCAP et winpcap, mais mon problème c lors de la réception des données j arrive pas à afficher le contenu du paquet, j ai toujours des données compréhensible et des données erronées (je pense que c est à cause de ma méthode de conversion lente), voici mon code :
PS : j ai entendu parler qu il faut utiliser un bufferReader ??? est ce que c vrai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 import java.io.FileWriter; import java.io.IOException; import java.io.UnsupportedEncodingException; import jpcap.*; import jpcap.packet.Packet; class Capteur implements PacketReceiver { public void receivePacket(Packet packet) { byte[] packetData = packet.data; char c ; for (byte b : packetData){ c = (char) (b & 0xff); System.out.print(c); } } public static void main(String[] args) throws Exception { NetworkInterface[] devices = JpcapCaptor.getDeviceList(); for (int i = 0; i < devices.length; i++) { System.out.println(i+" :"+devices[i].name + "(" + devices[i].description+")"); System.out.println(" data link:"+devices[i].datalink_name + "(" + devices[i].datalink_description+")"); System.out.print(" MAC address:"); for (byte b : devices[i].mac_address) System.out.print(Integer.toHexString(b&0xff) + ":"); System.out.println(); for (NetworkInterfaceAddress a : devices[i].addresses) System.out.println(" address:"+a.address + " " + a.subnet + " " + a.broadcast); JpcapCaptor jpcap = JpcapCaptor.openDevice(devices[0], 2000, false, 20); jpcap.loopPacket(-1, new Capteur()); } } }
j ai utilisé plusieurs façon de conversion mais sans résultat, aidez moi SVP
Merci d'avance
Partager