C# 使用SharpPcap截取和编辑数据包

C# 使用SharpPcap截取和编辑数据包,c#,sharppcap,C#,Sharppcap,我找过了,看不到这上面有什么 因此,我有一台通过我的主pc桥接的pc,我如何从我的主pc截取和编辑一个数据包(我知道它将进入我的另一台pc)?我知道如何截取它,但我找不到任何关于编辑它的东西 我目前的代码是: static void Main() { // Retrieve all capture devices var devices = CaptureDeviceList.New(); var device = devices.FirstOrDefault(dev

我找过了,看不到这上面有什么

因此,我有一台通过我的主pc桥接的pc,我如何从我的主pc截取和编辑一个数据包(我知道它将进入我的另一台pc)?我知道如何截取它,但我找不到任何关于编辑它的东西

我目前的代码是:

static void Main()
{
    // Retrieve all capture devices
    var devices = CaptureDeviceList.New();

    var device = devices.FirstOrDefault(dev => dev.Description.ToLowerInvariant().Contains("intel(r)"));

    // check device isn't null
    if (device == null)
        throw new NullReferenceException();


    while(true)
    {
        // open device
        device.Open();

        var capture = device.GetNextPacket();
        if (capture == null || capture.Data == null)
            continue;

        var packet = PacketDotNet.Packet.ParsePacket(capture.LinkLayerType, capture.Data);
        var asciiz = Encoding.ASCII.GetString(capture.Data);


        if (asciiz.ToLowerInvariant().Contains("xeraxic"))
        {
            asciiz = asciiz.Replace("<view>1</view>",
                                    "<view>2</view>");

            packet.PayloadPacket.PayloadPacket.PayloadData = Encoding.ASCII.GetBytes(asciiz);
            Console.WriteLine("Modified Packet, fingers crossed");
        }

        // close device
        device.Close();
    }
}
static void Main()
{
//检索所有捕获设备
var devices=CaptureDeviceList.New();
var device=devices.FirstOrDefault(dev=>dev.Description.ToLowerInvariant().Contains(“英特尔(r)”);
//检查设备是否为空
如果(设备==null)
抛出新的NullReferenceException();
while(true)
{
//开放式设备
device.Open();
var capture=device.GetNextPacket();
if(capture==null | | capture.Data==null)
继续;
var packet=PacketDotNet.packet.ParsePacket(capture.LinkLayerType,capture.Data);
var asciiz=Encoding.ASCII.GetString(capture.Data);
如果(asciiz.ToLowerInvariant().包含(“xeraxic”))
{
asciiz=asciiz.Replace(“1”,
"2");
packet.PayloadPacket.PayloadPacket.PayloadData=Encoding.ASCII.GetBytes(asciiz);
控制台。WriteLine(“修改包,祈祷”);
}
//闭合装置
设备。关闭();
}
}

解决方案有任何更新吗?