如何使用SharpPcap以可读格式从TcpPacket获取数据?

时间:2013-12-13 06:32:12

标签: c# packet-capture packet-sniffers sharppcap packet.net

我正在为我的最后一年项目构建嗅探器。我想以人类可读的格式从TCP中提取数据。

我使用 BitConverter 以十六进制格式获取数据,但我希望数据可读,即所有 Http浏览链接,获取请求,发布请求以及其他数据输出。 这是我的代码:

while((packet = device.GetNextPacket()) != null)
{
   var pack = PacketDotNet.Packet.ParsePacket(packet.LinkLayerType, packet.Data);
   var tcp = TcpPacket.GetEncapsulated(pack);
   if(tcp != null)
   {
      var sp = tcp.SourcePort;
      var dp = tcp.DestinationPort;
      var data = BitConverter.ToString(tcp.PayloadData);
      Console.WriteLine("{0}:{1}:{2}",sp,dp,data);
   }
}

请帮助,我没有多少时间和搜索,但无法得到任何东西..

提前致谢

1 个答案:

答案 0 :(得分:-1)

你可以使用下一个:

var data = Encoding.Unicode.GetString(tcp.PayloadData);