Tcp 原始数据包
Tcp raw packets
我使用 PcapDotnet 包装器来嗅探数据包,但它只显示 ip 原始数据包
例如在客户端我发送那个数据包
client_.Send(ASCIIEncoding.ASCII.GetBytes("test"));
在服务器端我想捕获 "test" 但 packet.Buffer 显示不同的 66 bytes.Can 我只得到 "test" 数据包?
private static void PacketHandler(Packet packet)
{
IpV4Datagram ip = packet.Ethernet.IpV4;
TcpDatagram tcp = ip.Tcp;
if (tcp.DestinationPort == 28001 || tcp.SourcePort == 28001)
{
File.AppendAllText("return.txt", ASCIIEncoding.ASCII.GetString(packet.Buffer));
Console.WriteLine(ip.Source + ":" + tcp.SourcePort + " -> " + ip.Destination + ":" + tcp.DestinationPort);
}
}
File.AppendAllText("return.txt", ASCIIEncoding.ASCII.GetString(packet.Buffer));
正在打印所有二进制文件,包括 IPv4 header 和 TCP header。
试试看:
File.AppendAllText("return.txt", ASCIIEncoding.ASCII.GetString(tcp.Payload??));
我使用 PcapDotnet 包装器来嗅探数据包,但它只显示 ip 原始数据包 例如在客户端我发送那个数据包
client_.Send(ASCIIEncoding.ASCII.GetBytes("test"));
在服务器端我想捕获 "test" 但 packet.Buffer 显示不同的 66 bytes.Can 我只得到 "test" 数据包?
private static void PacketHandler(Packet packet)
{
IpV4Datagram ip = packet.Ethernet.IpV4;
TcpDatagram tcp = ip.Tcp;
if (tcp.DestinationPort == 28001 || tcp.SourcePort == 28001)
{
File.AppendAllText("return.txt", ASCIIEncoding.ASCII.GetString(packet.Buffer));
Console.WriteLine(ip.Source + ":" + tcp.SourcePort + " -> " + ip.Destination + ":" + tcp.DestinationPort);
}
}
File.AppendAllText("return.txt", ASCIIEncoding.ASCII.GetString(packet.Buffer));
正在打印所有二进制文件,包括 IPv4 header 和 TCP header。
试试看:
File.AppendAllText("return.txt", ASCIIEncoding.ASCII.GetString(tcp.Payload??));