gpt4 book ai didi

C#获取数据包

转载 作者:太空狗 更新时间:2023-10-30 00:02:22 25 4
gpt4 key购买 nike

我一直在尝试编写一个脚本来嗅探 HTTP header 。到目前为止,我已经将套接字绑定(bind)到端口 80,并且似乎收到了数据包,但我无法将它们转换为字符串形式。所有输出都是连续的“E”。我之前把字节改成了十六进制,好像有一些数据进来了,但是现在的代码无法把字节改成字符串。是否有其他一些解码字节的方法可以提供正确的字符串?

byte[] input = BitConverter.GetBytes(1);
byte[] buffer = new byte[4096];
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
s.Bind(new IPEndPoint(IPAddress.Parse(strIP), 80));
s.IOControl(IOControlCode.ReceiveAll, input, null);
int bytes;
bytes = s.Receive(buffer);
while (bytes > 0)
{
log(System.Text.Encoding.ASCII.GetString(buffer, 0, bytes));
bytes = s.Receive(buffer);
}

最佳答案

当您使用原始 套接字嗅探数据时,您正在接收互联网协议(protocol) (IP) 数据包。每个 IP 数据包都以 IP header 开头.此 header 通常有 20 个字节长,但也可以更长。 IP header 之后是传输层的 header ,例如 Transmission Control Protocol (TCP) header 或 User Datagram Protocol (UDP) header 。在此 header 之后是您要查找的数据,即 HTTP。因此,当您解析数据时,您需要先跳过 IP header 和传输层 header 。

关于C#获取数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1850948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com