현재 C# 용 pcap 라이브러리를 사용하고 있으며 IP 헤더와 TCP/UDP/ECT 헤더를 제거하는 함수가 내장되어 있는지 궁금합니다. 그렇지 않다면, 누군가 그러한 헤더를 제거하는 방법을 게시 할 수 있습니까?C# 용 Pcap을 사용한 패킷 로깅
1
A
답변
2
PacketXLib을 사용하고 있습니까? 나는 이것을 사용하여 코드 작성이 쉬웠다. 헤더를 추출하면 그럼 그냥 원시 데이터를 얻을 수있는 헤더를 무시할 수, 단지
public const int ETHERNETLEN = 14; // length of ethernet header
public const int IPLEN = 20; // length of ip header
public const int TCPLEN = 20; // length of tcp header
당신이 내가했던 것과 같은 라이브러리를 사용하는 가정 프로토콜의 기본 기초를 알면 간단하다
int dataOffset = ETHERNETLEN + IPLEN + TCPLEN;
string rawData = "";
// Throw all the data into a string first up so we can work with it easier
for (int i = dataOffset; i < aPacket.DataSize; i++)
{
byte nByte = (byte)aPacket.DataArray.GetValue(i);
rawData += Convert.ToChar(nByte);
}
내가 한 곳에서보고있는 코드는 아마도 거의 1 년 전 이었지만, 정확히 내가하고있는 것에 대해 약간 흐릿한 것이 었습니다. 내가 게시 한 this question에서 볼 수있는 것처럼 일부 http 패킷 재구성 작업을 수행하고있었습니다. 사실, 그 실을보고, 내가 이것을하고 있었을 때 1 년이 넘었습니다!
1
저는 Carp의 pcap wrapper/library 인 SharpPcap의 저자입니다.
SharpPcap을 사용하는 경우 SharpPcap은 패킷을 데이터 그램으로 나눕니다. 그래서 당신은 UdpPacket을 포함하고있는 IpPacket을 포함하고있는 EthernetPacket으로 끝날 것입니다. 그냥 UDP 패킷을 원하는 경우에 당신은 쉽게 그와 같은 추출 할 수 있습니다 :
Packet p = Packet.ParsePacket(rawCapture.LinkLayerType, rawCapture.Data);
var udpPacket = UdpPacket.GetEncapsulated(p);
if(udpPacket != null) { Console.WriteLine("found udp packet '{0}'", udpPacket); }
UdpPacket.GetEncapsulated() 패킷을 찾고 데이터 그램을 통과합니다. 구문 분석되는 모든 유형에 대해 동일한 접근 방식이 적용됩니다.
관련 문제
- 1. log4cxx를 사용한 로깅 및 필터링
- 2. Windows 용 버클리 패킷 필터
- 3. RTP 패킷 - C# 코드
- 4. C# 패킷 데이터 받기
- 5. Common Infrastructure 라이브러리를 사용한 .NET 로깅 추상화 :
- 6. System.Diagnostics를 사용한 간단한 디버그 및 로깅
- 7. Postgres Windows 용 로깅 쿼리
- 8. Windows 용 로깅 도구는 무엇입니까?
- 9. C#에서 TCP 패킷 만들기
- 10. C#에서 ICMP 패킷 수신
- 11. 패킷 타임 아웃 구현하기 C++
- 12. Mac 용 로컬 호스트 패킷 분석기
- 13. Windows Mobile 용 패킷 스니퍼가 있습니까?
- 14. C 로깅 라이브러리
- 15. 로깅 예외 C#
- 16. C++ 로깅 라이브러리 설정
- 17. 전체 UDP 패킷 수신
- 18. IP 패킷 보내기
- 19. 패킷 스니핑
- 20. 응용 프로그램 내에서 TDS 패킷 가로 채기
- 21. .NET Compact Framework 용 로깅 라이브러리?
- 22. ASP.NET 응용 프로그램 용 로깅 프레임 워크
- 23. ASP.NET MVC 2 용 경량 로깅 라이브러리
- 24. Windows 서비스 용 ELMAH 오류 로깅
- 25. Windows Forms 용 처리되지 않은 예외 로깅
- 26. 클라이언트 측 로깅 용 스크립트 또는 도구
- 27. 비동기 스레드로부터 안전한 C++ 로깅
- 28. 사용자 정의 예외 로깅 C#
- 29. C++ 로깅 프레임 워크를 제안
- 30. C#에서 TCP 패킷 삭제 처리