我正在使用 SharpPcap 库成功解析“.pcap”文件。
目标是从 TCP/HTTP 数据包中检索 XML 数据。为了做到这一点,我使用下面的代码(删除空检查,使其更具可读性):
Packet packet = Packet.ParsePacket(eventArguments.Packet.LinkLayerType, eventArguments.Packet.Data);
EthernetPacket ethernetPacket = ((EthernetPacket)packet);
IpPacket ipPacket = (IpPacket)packet.Extract(typeof(IpPacket));
TcpPacket tcpPacket = (TcpPacket)packet.Extract(typeof(TcpPacket));
string rawData = tcpPacket.PrintHex();
移动,除了十六进制值和初始行,我能够从rawData变量中提取 XML 数据,以及意外的副作用。
返回的不是空格,而是.PrintHex()
'.' 人物:
代替:
<xml>Only text here</xml>
我得到这个:
<xml>Only.text.here</xml>
我没有做任何奇怪的替换或字节转换。上述行为正是.PrintHex()
返回的结果。
- 这是否是预期的结果?
- 更重要的是……如何解决或防止这种情况?(请记住,无法区分有效的 '.' 和转换后的 '.')
库版本:
.NET 框架:> 4.5.2
Pcapsharp:4.2.0