Frage

Ich versuche, die Ausgabe dieser Datei im LIBPCap -Format zu speichern, und obwohl die Datei gespeichert wird und die richtigen Daten darin geschrieben sind, kann Wireshark sie nicht öffnen. Sieht jemand, was ich hier fehlt? Vielen Dank.

   // opening the device here to listen
   handle = pcap_open_live( dev, BUFSIZ, 1, 1000, errbuf );
   unsigned int dlt = DLT_EN10MB;
   pcap_set_datalink(handle,dlt );


  FILE *filename;
  filename = fopen("/workarea/capture","a+");

  pcap_dumper_t * dump = NULL;

 // opens the file
 dump = pcap_dump_open( handle, (const char *)filename );

 pcap_loop(handle,-1,my_callback,(unsigned char *)filename);

 return (0);
}


 void my_callback(u_char *dump,const struct pcap_pkthdr* pkthdr,const u_char *packet)
  {
    unsigned int i=0;
    pcap_dump(dump,pkthdr,packet);

  }
War es hilfreich?

Lösung

Ihr Anruf an pcap_dump_open scheint nicht richtig zu sein. Es besteht ein Datei* Zeiger über, sollte aber einen Dateinamen übergeben. Verwenden pcap_dump_fopen Für einen Dateizeiger. Oder verwenden Sie weiter PCAP_DUMP_OPEN, geben Sie jedoch einfach den Dateinamen an ihn weiter.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top