내가 가장 가능성이 여기서 뭔가를 잃었지만, PCAP specification는 보낸 사람 IP를 주소와 PORT 캡처 된 패킷의를 표시하지 않습니다.PCAP 파일의 패킷에서 보낸 사람 IP 주소를 얻으려면 어떻게해야합니까?
PCAP 파일에 누가 패킷을 보냈는지 알 수있는 방법이 있습니까?
http://wiki.wireshark.org/Development/LibpcapFileFormat
내가 가장 가능성이 여기서 뭔가를 잃었지만, PCAP specification는 보낸 사람 IP를 주소와 PORT 캡처 된 패킷의를 표시하지 않습니다.PCAP 파일의 패킷에서 보낸 사람 IP 주소를 얻으려면 어떻게해야합니까?
PCAP 파일에 누가 패킷을 보냈는지 알 수있는 방법이 있습니까?
http://wiki.wireshark.org/Development/LibpcapFileFormat
EJP가 말한대로 패킷 데이터를 직접 파싱해야합니다. 파일 헤더의 network
필드의 값 목록과 패킷 데이터 시작 부분의 해당 헤더 형식에 대해서는 the tcpdump.org link-layer header type page을 참조하십시오.
패킷이 IP 패킷인지 여부를 확인하려면 해당 헤더를 확인해야합니다. 그럴 경우 IPv4 또는 IPv6 헤더 (헤더에 IPv4 또는 IPv6 패킷이 있음을 나타내는 지 여부에 따라 또는 헤더의 "버전"필드가 4 또는 6인지 여부에 따라 구문 분석해야 함) 버전 "필드가 IPv4 및 IPv6 헤더의 동일한 위치에 나타나면 LINKTYPE_RAW
의 경우 IPv4 또는 IPv6 헤더 앞에 헤더가 없으므로"버전 "필드를 살펴 봐야합니다.) 소스 IP 주소를 찾으려면 . IPv4 헤더의 형식은 RFC 791을 참조하십시오. IPv6 헤더 형식에 대해서는 RFC 2460을 참조하십시오.
당신이 포트 번호를 원하는 경우에, 당신이있는 어떤 프로토콜을 결정하기 위해, 및 핸들 확장 헤더를 IPv4 헤더의 "프로토콜"필드를 확인하거나 IPv6 헤더의 "다음 헤더"필드를 확인해야합니다 IP의 상단에 실시. 해당 필드의 값은 IANA Protocol Numbers registry을 참조하십시오. TCP가 6이고 UDP가 17입니다. 프로토콜이 TCP 인 경우 TCP 헤더의 형식은 RFC 793을 참조하십시오. 프로토콜이 UDP 인 경우 UDP 헤더의 형식은 RFC 768을 참조하십시오.
또는 당신은 라이브러리를 구문 분석하는 기존의 패킷, 기타 언어에 대한 C 또는 C++ 또는 다른 라이브러리 libtrace (I 예를 들어, 그들은 펄, 파이썬, C# 및 Java 용있을 수 있습니다 생각)와 같은, 등을 사용할 수 있습니다 당신이 위의 많은 일을 피하게 할 수 있습니다.
(pcap 형식 사양을 살펴볼 필요가 없어야하며, libapcap/WinPcap을 사용하여 pcap 파일을 읽어야합니다. 프로그램이 일부 pcap- 충분히 최신 버전의 libpcap을 사용하고 있다면 파일도 함께 저장하십시오.)
패킷 원점은 IP 패킷 그 자체이다. 따라서 PCap 헤더에도있을 필요는 없습니다.