tshark에서 Http 헤더 만 어떻게 반환합니까?


12

나는 tshark를 사용하여 패킷을 스니핑하고 http 헤더에만 관심이 있습니다 (바람직하게는 보낸 형식이지만 얻을 수있는 것을 취할 것입니다).

나는 다음을 사용하려고 시도했다.

tshark tcp port 80 or tcp port 443 -V -R "http"

그것은 나에게 헤더뿐만 아니라 내용 (파싱하기 위해 많은 양의 쓰레기로 원하지 않음)을 주었다. 나는 정말로 헤더 만 신경 쓰며, 데이터를 직접 파싱하는 것 외에는 쉽게 얻을 수있는 방법이 있습니까?

편집 : 여러 패킷의 요청을 추적 할 수 있도록 호스트 / 포트도 관리해야합니다.

답변:


18

특정 HTTP 헤더 표시 필터를 사용하여 요청 헤더 만, 응답 헤더 만 또는 둘 다 표시 할 수 있습니다.

요청 헤더의 경우 :

tshark tcp port 80 or tcp port 443 -V -R "http.request"

응답 헤더 만 :

tshark tcp port 80 or tcp port 443 -V -R "http.response"

그리고 요청 및 응답 헤더 모두에 대해 :

tshark tcp port 80 or tcp port 443 -V -R "http.request || http.response"

참고 : 헤더 만 포함하고 헤더가 포함 된 패킷 만 필터링하지 않으므로 여전히 일부 데이터를 얻을 수 있지만 데이터 양은 그렇지 않은 것보다 적어야합니다.


우리는 en.wikipedia.org에 대한 요청이있는 것처럼 여전히 많은 데이터에 대해 이야기하고 있습니다. 헤더에서 1k 미만을 원할 때 750k를 다시 얻고 있습니다.
15시

tshark는 패킷 캡처 도구이므로 Fiddler 또는 다른 HTTP 전용 분석 도구 와 같은 것을 살펴볼 수 있습니다 .
21:45에

피들러에 익숙하지 않지만 내 목표는 연결 처리량을 추적하여 HTTP 헤더를 유지하면서 requesttime / firstbyte / lastbyte를 알고 싶습니다. tshark는 이미 대부분의 문제를 해결하므로 헤더를 가져와야합니다.
15시

3
그것은 생산 : "잘못된 캡처 필터 tshark를" (tshark를 2.0.2). 해결 방법으로 다음을 사용했습니다.tshark -V -Y http.request tcp port 80 or tcp port 443
jfs

5

사실 당신은 할 수 있습니다! 모든 이전 답변은 매우 가깝습니다. -OHTTP를 제외한 모든 정보를 필터링하는 플래그 만 있으면 됩니다.

tshark -O http -R http.request tcp port 80 or tcp port 443

1
이것이 정답입니다.
Florin Andrei 18

3

@heavyd의 답변을 결합하고 SO 기사 에서 얻은 sed 필터를 통해 실행할 수있었습니다. (FJ의 답변)이 아기를 요리하기 위해 헤더를 필터링합니다. :)

sudo tshark tcp port 80 or tcp port 443 -V -R "http.request || http.response" | sed -rn '/Hypertext Transfer Protocol/{:a;N;/    \\r\\n:?/{/.*/p;d};ba}' >> /tmp/filtered

1
무서운 sed 원인 나는 그것을 읽을 수 없지만 매력처럼 작동했습니다.
Setheron

2

쉽게 읽을 수있는 나만의 필터 버전 :

tshark -V -R "tcp.port ==80 && (http.request || http.response)" | awk "/Hypertext Transfer Protocol/,/Frame/ { print };/Transmission Control Protocol/{print};/Internet Protocol/{print}" | grep -v Frame

이 방법으로 모든 하위 수준 항목과 완전한 HTTP 정보가없는 관련 IP 및 TCP 정보 만 볼 수 있습니다.


sudo tshark -V -s0 포트 80 -Y "(http.request || http.response)"| awk "/ 하이퍼 텍스트 전송 프로토콜 /, / ^ $ /"
Lmwangi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.