Dpkt kullanarak ethernet üzerindeki paketleri yakalayan bir python betikleri var, ancak hangi paketlerin tcp olduğunu ve hangisinin ne için olduğunu nasıl ayırt ederim? udp.python/dpkt: Paketin bir tcp paketi veya bir udp paketi olup olmadığını öğrenin.
Sonunda, zaman aralığı boyunca kurulan her bir tcp bağlantısı için paketlerin bir listesini almak istiyorum.
benim kodudur:
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()
Yanıtı buldum, bu yüzden burada başkaları için de yayınlayabilirim. Aşağıdaki kod işi yapar: ip = eth.data if (ip .__ dict) .has_key ('tcp'): bu bir tcp paket olduğunu #then ... – ConfusedAboutCPP