C#嗅探器 - 收到数据

时间:2012-11-01 12:41:47

标签: c# networking sniffer

我尝试在C#中编写嗅探器,在Google中我找到了this教程。我添加到类TCPHeader

string wiad = Encoding.UTF8.GetString(byTCPData);
if (wiad.Contains("|"))
    MessageBox.Show(wiad);

要查看收到的消息,但我只能看到已发送的数据包。我该如何修改它以查看收到的数据呢?

2 个答案:

答案 0 :(得分:0)

你可以使用基于fiddler核心库的嗅探器,我认为这是更好的选择。感谢

FiddlerCore - 适用于.NET应用程序的Fiddler代理引擎www.fiddler2.com/core /

答案 1 :(得分:0)

我遇到了同样的问题,最后发现Windows防火墙会阻止你嗅探传入的包。关闭Windows防火墙后,它将工作。 在Win10中,您可以在控制面板中关闭它,或使用命令 netsh advfirewall set allprofiles state off 或使用像这样的c#代码

public static void TurnOffFireWall()
{
    // Have only been tested in Win10
    Process proc = new Process();
    string top = "netsh.exe";
    proc.StartInfo.Arguments = "advfirewall set allprofiles state off";
    proc.StartInfo.FileName = top;
    proc.StartInfo.UseShellExecute = false;
    proc.StartInfo.RedirectStandardOutput = true;
    proc.StartInfo.CreateNoWindow = true;
    proc.Start();
    proc.WaitForExit();
}

请注意我只在win10上测试,在其他系统中,命令可能有点不同。