파이썬을 사용하여 TCP 스트림 소켓에서 완전한 (원시) IP 프레임을 읽어야합니다. 본질적으로 마치 수정되지 않은 프레임이 모든 헤더 정보를 포함하여 물리적 라인에서 나온 것처럼 보입니다.파이썬의 TCP 소켓에서 완전한 IP 프레임을 읽는 방법?
파이썬에서 원시 소켓을 조사했지만 몇 가지 문제가있었습니다. 나는 내 자신의 패킷을 형성 할 필요가 없으며 단순히 그대로 읽고 전달해야한다.
그래서 기존 TCP 소켓 (파이썬에서)에서 전체 IP 프레임 (헤더 포함)을 읽을 수 있습니까?
표준 라이브러리 만 사용하는 것이 좋습니다. 또한 나는 리눅스 호스트에있다.
감사합니다.
(모든 언어에 상관없이) "TCP 소켓에서 전체 IP 프레임을 읽을 수 없습니다." TCP 소켓은 원시 패킷에 대한 액세스를 제공하지 않습니다. 패킷 스니핑 인터페이스를 사용해야 할 것입니다. –
그렇다면 TCP 서버를 만든 경우 TCP 포트에 연결된 원시 소켓을 만들 수 있습니까? 어느 쪽이든, 나는 제안 된 것처럼 패킷 스니핑 인터페이스를 사용할 것이라고 생각한다. –
원시 소켓에는 "포트"의미가 없습니다! TCP 서버에서 소켓은 네트워크의 * 위 *에 생성됩니다. 수신하는 모든 데이터는 이미 OS에 의해 하위 계층에서 제거됩니다. 그 (것)들을 얻는 유일한 방법은 본래 소포를 킁킁 거리고 유형/항구 및 다른 상위 수준 의미론을 너 자신 (또는 어떤 도서관을 통해) 결정하기위한 것이다. – Santa