python / dpkt: savoir si le paquet est un paquet tcp ou un paquet udp ,

J'ai des scripts python qui capture les paquets sur le réseau ethernet à l'aide de dpkt, mais comment puis-je différencier les paquets tcp et udp.

Finalement, je voudrais avoir une liste de paquets pour chaque connexion tcp a été établi au cours de l'intervalle de temps.

mon code est:

import dpkt
import pcapy
cap=pcap.open_live('eth0',100000,1,0)
(header,payload)=cap.next()
while header:
    eth=dpkt.ethernet.Ethernet(str(payload))
    ip=eth.data
    tcp=ip.data 
    # i need to know whether it is a tcp or  a udp packet here!!!
    (header,payload)=cap.next()
J'ai trouvé la réponse donc je pourrais aussi bien le poster ici pour les autres. Le code suivant fait le travail: ip=eth.les données if (ip.__dict).has_key('tcp'): #puis c'est un paquet tcp...

OriginalL'auteur ConfusedAboutCPP | 2012-01-13