Tengo un script de python que captura los paquetes en el ethernet usando dpkt, pero ¿cómo distingo entre qué paquetes son tcp y cuáles son para udp.python/dpkt: Averigüe si el paquete es un paquete tcp o un paquete udp,
Eventualmente me gustaría tener una lista de paquetes para cada conexión de tcp que se estableció durante el intervalo de tiempo.
mi código es:
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()
Encontré la respuesta así que también podría publicarla aquí para otros. El siguiente código hace el trabajo: ip = eth.data si (ip .__ dict) .has_key ('tcp'): #then este es un paquete TCP ... – ConfusedAboutCPP