dpkt를 사용하여 이더넷에서 패킷을 캡처하는 파이썬 스크립트가 있는데, 어떤 패킷이 tcp이고 어떤 것이 패킷인지 구분하는 방법은 무엇입니까? udp.python/dpkt : 패킷이 tcp 패킷인지 또는 udp 패킷인지 확인하십시오.
결국 나는 시간 간격 동안 설정된 각 tcp 연결에 대한 패킷 목록을 갖고 싶습니다.
내 코드는 다음과 같습니다
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()
답변을 찾았으니 다른 사람들을 위해 게시 할 수도 있습니다. 다음 코드는 작업을 수행합니다 IP = eth.data 경우 (IP .__ DICT) .has_key ('TCP') : 이 TCP 패킷은 #then ... – ConfusedAboutCPP