HTTPヘッダーをスニッフィングするスクリプトを作成しようとしています。これまでのところ、ソケットはポート80にバインドされており、パケットは受信されているように見えますが、文字列形式にすることはできません。出力されるのは「E」だけです。以前にバイトを16進数に変更しましたが、データが入っているようですが、現在のコードではバイトを文字列に変更できません。適切な文字列を与えるバイトをデコードする他の方法はありますか?
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);
}