나는 라이브러리를 사용하여 tcpdump
에 캡처 된 SCTP * .pcap 파일을 파이썬에서 분석하려고합니다.dpkt를 사용하여 파이썬 네트워크 패킷 분석
SCTP 일반 헤더, 청크 헤더를 가져올 수 있습니다. 청크 헤더 다음에 라이브러리를 사용하여 구문 분석 할 수없는 chunk.data
이 표시됩니다. (나는 소스 코드를 살펴 보았다).
그러나 그 첫 번째 4 바이트는 chunk.data
입니다. chunk.data
의 형식은 문자열입니다. 그래서 내가 처음 4 문자를 얻을 수 있다면, 나는 첫 번째 4 바이트를 얻을 수 있다고 생각한다 (문자의 크기는 1 바이트이기 때문에). 그 후을 사용하여 4 바이트를 호스트 바이트 순서로 변환해야합니다. 하지만 첫 번째는 어떻게 해야할지 모르는 socket.ntohl()
함수의 입력으로 4 자 문자열을 부호없는 정수로 변환해야합니다.
아스키 코드를 사용해 보았습니다.
i= ntohl(int(''.join(str(ord(c)) for c in x)))
OverflowError: long int too large to convert
내가 x="efgh"
을 복용하여 시도 :
data=chunk.data
x=data[:4]
i= ntohl(int(''.join(str(ord(c)) for c in x)))
그것은 오류를 보여주는 것. 그러나 ASCII 값은 4 바이트 부호없는 정수를 생성하지 않습니다. (101102103104> 4294967295) 그래서 ascii 값은 여기에서 사용하는 것이 올바르지 않다고 생각합니다.
아무에게 말해 줄 수 있습니까?