c# - 如何在 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();
解决方案
推荐阅读
- python-3.x - 类型错误:insert_results() 缺少 1 个必需的位置参数:'ergebnisse'
- python - 单击按钮后更改 Pyglet 窗口的内容
- angular - 嵌套过滤器不起作用
- compilation - 编译/配置时如何指定额外的 include 和 lib 目录?(回复:自动配置/配置)
- xml - 基于 PowerShell 中的模式提取 XML 节点和值
- angular - 以编程方式访问 NGRX 状态中的值
- javascript - 从 JS 中动态添加 CSS 关键帧,为动画添加随机性
- python - 按其他列表过滤列表系列
- amazon-ec2 - AWS SSH 密钥是否符合 HIPAA 或 Sox 标准?
- visual-studio - 传感器模拟器构建失败并出现 LNK1112 错误