1

원시 소켓을 사용하여 파이썬에서 패킷 스니퍼를 만들려고 시도하고 struct.unpack 메소드를 사용하여 전체 TCP 헤더를 구문 분석하지만 HLEN (4bits) 및 오프셋, URG, ACK, PST와 같은 일부 필드를 구문 분석하려고합니다. , RST, SYN, TCP 헤더의 FIN은 Byte가 아닌 비트에 있습니다. 그래서 내 질문 헤더에서 이러한 값을 구문 분석하는 방법입니다!원시 소켓을 사용하는 파이썬 패킷 스니퍼

답변

0

당신은 사용할 수 있습니다

  • 표준 라이브러리의 일부입니다 ctypes, 또는 네트워크 프로토콜을 지원하도록 설계
  • Construct
  • 아닌
  • bitarray,
  • bitstring을하는 뿐만 아니라 아닙니다.

    from ctypes import c_int32, c_uint32, Structure, Union 
    
    class _bits(Structure): 
        _fields_ = [ 
         ("odd", c_uint32, 1), 
         ("half", c_uint32, 31), 
        ] 
    
    class Int(Union): 
        _fields_ = [ 
         ("bits", _bits), 
         ("number", c_uint32), 
        ] 
    
    
    a = Int(number=12345) 
    a.bits.odd, a.bits.half 
    

    결과 :

    >>> a = Int(number=12345) 
    >>> a.bits.odd, a.bits.half 
    (1L, 6172L) 
    
    여기

은 일례이며