Salut les gars comment puis-je recueillir la longueur du paquet pour chaque paquet dans le fichier pcap? merci beaucouprecueillir la longueur des paquets dans le fichier pcap
Répondre
Je suggère une méthode high-tech, que très peu de gens connaissent: lire la documentation.
PPCE homme nous dit qu'il ya en fait deux longueurs différentes disponibles:
caplen a bpf_u_int32 giving the number of bytes of the packet that are available from the capture len a bpf_u_int32 giving the length of the packet, in bytes (which might be more than the number of bytes available from the cap- ture, if the length of the packet is larger than the maximum num- ber of bytes to capture)
Un exemple en C:
/* Grab a packet */ packet = pcap_next(handle, &header); if (packet == NULL) { /* End of file */ break; } printf ("Got a packet with length of [%d] \n", header.len);
Un autre en Python avec le pcapy library:
import pcapy reader = pcapy.open_offline("packets.pcap") while True: try: (header, payload) = reader.next() print "Got a packet of length %d" % header.getlen() except pcapy.PcapError: break
Ces deux exemples ci-dessous fonctionnent bien:
- utilisant C, WinPcap
- en utilisant python, scapy
(WinPcap) (compilateur CL, Microsoft VC) J'ai écrit cette fonction (en C) pour obtenir la taille des paquets et il fonctionne très bien . Ne pas oublier d'inclure pcap.h et HAVE_REMOTE situé dans préprocesseur du compilateur
u_int getpkt_size(char * pcapfile){
pcap_t *indesc;
char errbuf[PCAP_ERRBUF_SIZE];
char source[PCAP_BUF_SIZE];
u_int res;
struct pcap_pkthdr *pktheader;
u_char *pktdata;
u_int pktsize=0;
/* Create the source string according to the new WinPcap syntax */
if (pcap_createsrcstr(source, // variable that will keep the source string
PCAP_SRC_FILE, // we want to open a file
NULL, // remote host
NULL, // port on the remote host
pcapfile, // name of the file we want to open
errbuf // error buffer
) != 0)
{
fprintf(stderr,"\nError creating a source string\n");
return 0;
}
/* Open the capture file */
if ((indesc= pcap_open(source, 65536, PCAP_OPENFLAG_PROMISCUOUS, 1000, NULL, errbuf)) == NULL)
{
fprintf(stderr,"\nUnable to open the file %s.\n", source);
return 0;
}
/* get the first packet*/
res=pcap_next_ex(indesc, &pktheader, &pktdata);
if (res !=1){
printf("\nError Reading PCAP File");
return 0;
}
/* Get the packet size*/
pktsize=pktheader->len;
/* Close the input file */
pcap_close(indesc);
return pktsize;
}
Un autre exemple wroking en Python en utilisant le merveilleux SCAPY
from scapy.all import *
pkts=rdpcap("data.pcap",1) # reading only 1 packet from the file
OnePkt=pkts[0]
print len(OnePkt) # prints the length of the packet
Pourquoi aucun ntohs n'est là pour (pktheader-> len)? –
- 1. aide à utiliser la bibliothèque pcap pour renifler les paquets
- 2. longueur des paquets capturés plus de MTU
- 3. Alternatives PCAP
- 4. recueillir le (s) fichier (s) d'utilisateurs
- 5. Longueur actuelle de la file d'attente des paquets udp
- 6. Affichage de la longueur des séquences individuelles dans le fichier
- 7. pcap et iptables tussle
- 8. pcap datalink LINUX_SLL
- 9. recueillir des informations de fichier texte en utilisant C#
- 10. Outil de décalage temporel d'un fichier PCAP?
- 11. ouverture d'un fichier pcap en python
- 12. Performance PCap
- 13. pcap seulement ramasser sur les nouvelles connexions
- 14. Aide Python - Analyse des paquets de paquets
- 15. éléments manquants de pcap?
- 16. Bibliothèque de paquets dans le fichier exec final
- 17. Recueillir des données de Google Résultat flux
- 18. Quel format de capture de paquets est le meilleur?
- 19. Bibliothèque Pcap pour problème impair C#
- 20. module pour le flux pcap en python
- 21. Comment supprimer une couche Ethernet d'un fichier pcap?
- 22. Meilleure façon de recueillir, puis importer des données dans drupal?
- 23. Comment extraire les données H263/H264 d'un fichier pcap.
- 24. Longueur d'un fichier XML
- 25. Génération de paquets pour le routage
- 26. Gestion de la mémoire des paquets
- 27. Recherche de la longueur d'une force dans un fichier nginx.conf
- 28. Découverte de la taille maximale des paquets
- 29. Gestion des paquets NuPack
- 30. Recueillir de nombreux «comptes» dans une requête?
préférence Langage de programmation? – brickner
-1 pour ne pas avoir suivi vos questions. – bortzmeyer