반응형
PCAP 파일을 구문 분석하고 있으며 TCP 플래그 (SYN, ACK, PSH, URG, ...)를 추출해야합니다.
한 번에 모든 플래그를 얻기 위해 packet [ 'TCP']. flags
값을 사용하고 있습니다.
pkts = PcapReader(infile)
for p in pkts:
F = bin(p['TCP'].flags)
print F, bin(F), p.summary()
# manual flags extraction from F
packet [ 'TCP']. flags
값에서 수동으로 추출하지 않고 단일 TCP 플래그를 얻는 방법이 있습니까?
해결 방법
일반적으로 FLAGS를 처리하는 일반적인 방법은 비트 맵과 비트 연산자를 사용하는 것입니다. Packet
클래스에 플래그를 테스트 할 특정 메서드가없는 경우 IMHO를 수행 할 수있는 가장 좋은 방법은 다음과 같습니다.
FIN = 0x01
SYN = 0x02
RST = 0x04
PSH = 0x08
ACK = 0x10
URG = 0x20
ECE = 0x40
CWR = 0x80
그리고 다음과 같이 테스트하십시오.
F = p['TCP'].flags # this should give you an integer
if F & FIN:
# FIN flag activated
if F & SYN:
# SYN flag activated
# rest of the flags here
슬프게도 파이썬은 이것을 더 우아하게 만들기위한 switch
문을 가지고 있지 않지만 실제로는 그다지 중요하지 않습니다.
도움이 되었기를 바랍니다!
참조 페이지 https://stackoverflow.com/questions/20429674
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python : defaultdict를 dict로 변환 (0) | 2020.12.28 |
---|---|
파이썬 Python 3에서 .txt 파일에 쓰는 방법 (0) | 2020.12.28 |
파이썬 존재하지 않는 경우 새 파일에 쓰고있는 경우 파일에 추가 (0) | 2020.12.28 |
파이썬 kivy에서 버튼 또는 레이블 텍스트 색상 변경 (0) | 2020.12.27 |
파이썬 +에 대해 지원되지 않는 피연산자 유형 : 'int'및 'str' (0) | 2020.12.27 |
댓글