Tôi có tập lệnh python chụp các gói trên ethernet bằng dpkt, nhưng làm cách nào để phân biệt giữa gói nào là tcp và gói nào udp.python/dpkt: Tìm hiểu xem gói có phải là gói tcp hay gói udp không,
Cuối cùng tôi muốn có danh sách các gói cho mỗi kết nối TCP được thiết lập trong khoảng thời gian.
mã của tôi là:
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()
Tôi tìm thấy câu trả lời để tôi cũng có thể đăng nó ở đây cho người khác. Mã sau đây thực hiện công việc: ip = eth.data nếu (ip .__ dict) .has_key ('tcp'): # thì đây là gói tcp ... – ConfusedAboutCPP