首页 > 解决方案 > 如何在 Windows 服务器上通过 C# Socket 发送或转发原始 TCP 数据包?

问题描述

我已经知道在 Microsoft 网站上提到的 Windows 桌面上发送原始 TCP 数据包是不可能的,但是在 Windows Server 2019 等新的Windows 服务器上是否可以发送原始 TCP 数据包。我不想使用 Pcap 或第三方驱动程序。

像这样的东西?

      var sendSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
        sendSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 8);
        sendSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);

        var s = new IPv4Header
        {
            SrcIpAddress = IPAddress.Parse("127.0.0.99"),
            DesIpAddress = IPAddress.Parse("127.0.0.90"),
            Protocol = 6,
            Length = (ushort)Marshal.SizeOf(typeof(IPv4Header))
        };

        data = s.ToBytes();

标签: c#windowssocketstcppacket

解决方案


推荐阅读